먼저 이전 문제를 한번 보고오면 이해가 쉬울 것이다.
https://velog.io/@seungju0000/11726-2xn-%ED%83%80%EC%9D%BC%EB%A7%81
전과 다른 점이 있다면
Num[i]의 도형은
Num[i - 2]의 도형 뒤에 2x1 2개를 붙이는 것과 그리고 2x2 1개를 붙이는 것
Num[i - 1]의 도형 뒤에 1x2 1개를 붙이는 것
으로 구할 수 있다.
즉, Num[i] = Num[i - 2] * 2 + Num[i - 1]로 표현할 수 있다.
import java.util.Scanner;
public class Num11727 {
public static int N;
public static int Num[];
public static void main(String[] args) {
//input
Scanner scanner = new Scanner(System.in);
N = Integer.parseInt(scanner.nextLine());
Num = new int[N+2];
//logic
Num[1] = 1;
Num[2] = 3;
for (int i=3; i<=N; i++) {
Num[i] = (Num[i-1] + Num[i-2] * 2) % 10007;
}
//output
System.out.println(Num[N]);
}
}