

다이나믹 프로그래밍 문제이다.| 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))
