
DP 문제푸는 방법
- 테이블 정의
- 점화식 찾기
- 초기값 정하기
dp[i] = 2i 크기의 직사각형을 12, 2*1 크기의 타일로 채우는 방법의 수
dp[i] = dp[i-1] + dp[i-2]
dp[1] = 1
dp[2] = 2
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _11726 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] dp = new int[n+2];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
// 마지막에만 % 10007 연산을 해주면 중간에 저장되는 값이 int 값을 넘어서 오버플로우 발생
dp[i] = (dp[i-1] + dp[i-2])%10007;
}
System.out.println(dp[n]);
}
}
