
import sys
input = sys.stdin.readline
for i in range(int(input())):
dp = [1,1,1]
n = int(input())
for i in range(3,n):
dp.append((dp[-2] + dp[-3]))
print(dp[n-1])
p(1) 부터 p(10)은 1,1,1,2,2,3,4,5,7,9 이다.
규칙을 잘 살펴보면 p(n) + p(n+1) === p(n+3) 의 형태로 된 것을 볼 수 있다.
이것을 이용하여 dp.append((dp[-2] + dp[-3]))를 배열에 계속 추가하는 방식으로 풀이하였다.
| [파이썬/python] 백준 1149번 : RGB거리(🥈1) (0) | 2023.07.02 |
|---|---|
| [파이썬/python] 백준 1912번 : 연속합(🥈2) (0) | 2023.07.02 |
| [파이썬/python] 백준 1904번 : 01타일 (🥈3) (0) | 2023.06.30 |
| [파이썬/python] 백준 15655번 : N과 M (6) (🥈3) (0) | 2023.06.14 |
| [파이썬/python] 백준 15654번 : N과 M (5) (🥈3) (0) | 2023.06.13 |