규칙은 쉽게 찾았다.
dp라는것을 아는데 시간이 걸렸을 뿐


import sys
input = sys.stdin.readline
dp = [0] * 100001
for i in range(100001):
dp[i] = [0,0,0]
dp[1] = [1,0,0]
dp[2] = [0,1,0]
dp[3] = [1,1,1]
for i in range(4, 100001):
dp[i][0] = (dp[i-1][1] + dp[i-1][2]) %1000000009
dp[i][1] = (dp[i-2][0] + dp[i-2][2]) %1000000009
dp[i][2] = (dp[i-3][0] + dp[i-3][1]) %1000000009
t = int(input())
for _ in range(t):
n = int(input())
print(sum(dp[n]) % 1000000009)
'Algorithm(BOJ, Python) > Dynamic Programing' 카테고리의 다른 글
| [백준_2225] 합분해 python (0) | 2022.06.21 |
|---|---|
| [백준_10844] 쉬운 계단 수 python (0) | 2022.06.20 |
| [백준_11727] 2×n 타일링 2 python (0) | 2022.06.16 |
| [백준_1074] Z python (0) | 2022.06.15 |
| [백준_1309] 동물원 python (0) | 2022.06.14 |