[DP] [백준 / 11726] 실버 1 - 2×n 타일링 (java/자바)


n=3일때 첫번째로 올수 있는 경우의 블럭은 1칸 차지하는 블럭과 2칸 차지하는 블럭이다.
1칸 차지하는 블럭 이후 다음 2칸이 올 수 있는 경우는 n=2와 같다.2칸 차지하는 블럭 이후 다음 1칸이 올 수 있는 경우는 n=1과 같다.An = An-2 + An-1
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(r.readLine());
int[] dp = new int[n + 1];
if (n <= 2) {
System.out.println(n);
return;
}
dp[1] =1;
dp[2] =2;
for (int i=3; i<= n ; i++){
dp[i] = ( dp[i-1] + dp[i-2] )% 10007;
}
System.out.println(dp[n]);
}
}