다이나믹 프로그래밍
문제이다.n | 경우의 수 |
---|---|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 5 |
5 | 8 |
6 | 13 |
7 | 21 |
8 | 34 |
9 | 55 |
d[i] = d[n-1] + d[n-2]
점화식이 성립한다.# https://www.acmicpc.net/problem/11726
# boj, 11726: 2*n 타일링
import sys
input = sys.stdin.readline
def dp(n):
# dp table 초기화
d = [0] * 1001
d[1] = 1
d[2] = 2
# dp bottom-up
for i in range(3, n+1):
d[i] = (d[i-1] + d[i-2]) % 10007
return d[n]
if __name__ == '__main__':
n = int(input())
print(dp(n))