https://www.acmicpc.net/problem/11726
2 x (n-1) 과 2 x (n -2) 값을 더해주면 된다
n = 1일 때 2x1을 채울 수 있는 방법은 1이다.
n = 2일 때 2x2를 채울 수 있는 방법은 2이다. (1x2 2개 || 2x1 2개)
n = 3일 때 2x3을 채울 수 있는 방법은 3이다. (2x1 3개 || 2x1 1개 + 1x2 2개 || 2x1 2개 + 1x2 1개)
n = 4일 때 2x4을 채울 수 있는 방법은 5이다. (2x1 3개 || 2x1 1개 + 1x2 2개 || 2x1 2개 + 1x2 1개)
즉 2x(n-1) 직사각형을 채우는 경우와 2x(n-2) 직사각형을 채우는 방법을 더하면 된다.
n = int(input())
dp = [0 for i in range(1001)]
dp[1] = 1
dp[2] = 2
for i in range(3, 1001):
dp[i] = (dp[i-1] + dp[i-2]) % 10007
print(dp[n])
가장 확실한 dp[1], dp[2] 값을 세팅해주고 3부터 1000까지 반복한다.
모를 때는 직접 규칙을 찾아 보고 풀이를 최대한 나중에 보자