2xn 타일링 1 문제와 비슷하다.
2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×17 직사각형을 채운 한가지 예이다.
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
dp 문제이다.
-> 하나씩 그려보면 규칙을 나온다!
두 번째 전 숫자에 2를 곱하고, 첫 번째 전 숫자 더하면 내가 구해야 할 값이 나온다.
코딩을 해주면 끝!
n = int(input())
arr = [0, 1, 3]
for i in range(3, n+1):
arr.append(arr[i-1] + 2* arr[i-2])
print(arr[n] % 10007)