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

SlowAnd·2024년 2월 17일

[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]);
    }
}

0개의 댓글