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

SlowAnd·2024년 2월 17일

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

문제

접근

n=3일때 첫번째로 올수 있는 경우의 블럭은 1칸 차지하는 블럭2칸 차지하는 블럭이다.

1칸 차지하는 블럭 이후 다음 2칸이 올 수 있는 경우는 n=2와 같다.
2칸 차지하는 블럭 이후 2칸의 경우의 수 X 다음 1칸이 올 수 있는 경우는 n=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());
        if(N==1) {
            System.out.println(1);
            return;
        }
        int[] dp = new int[N+1];
        dp[1] = 1;
        dp[2] = 3;

        for (int i = 3; i < N+1; i++) {
            dp[i] = (dp[i-1] + 2*dp[i-2])%10007;
        }
        System.out.println(dp[N]);

    }
}

0개의 댓글