티스토리 뷰
728x90
반응형
문제
코드
T = int(input())
for i in range(T):
a=int(input())
result = [0] * (a)
for j in range(a):
if j <= 2:
result[j] = 1
elif j <= 4:
result[j] = 2
else:
result[j] = result[j-5] + result[j-1]
print(result[a-1])
코드설명
1 1 1 2 2 3 4 5 7 9 12 16 21 28 => 변의길이
0 1 2 3 4 5 6 7 8 9 10 11 12 13 => 인덱스값
변의길이(인덱스값)
3(5) = 1(0) + 2(4)
4(6) = 1(1) + 3(5)
5(7) = 1(2) + 4(6)
7(8) = 2(3) + 5(7)
9(9) = 2(4) + 7(8)
12(10) = 3(5) + 9(9)
16(11) = 4(6) + 12(10)
점화식을 찾아야 쉽게 풀 수 있는 문제인것 같다.
0~4 까지는 특별한 규칙이 존재하지 않는것 같아 미리 리스트에 넣어준다.
5부터는 result[n] = result[n-5] + result[n-1] 점화식이 성립한다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1932번 정수 삼각형 (Python) (0) | 2021.03.13 |
---|---|
[백준] 1149번 RGB거리 (Python) (0) | 2021.03.13 |
[백준] 9184번 신나는 함수 실행 (Python) (0) | 2021.03.13 |
[백준] 1436번 영화감독 숌 (Python) (0) | 2021.03.12 |
[백준] 4948번 베르트랑 공준 (Python) (0) | 2021.03.12 |
댓글