[백준 / 실버3] 11727 2xn 타일링 2 (Java)

Ilhwanee·2022년 8월 14일
0

코딩테스트

목록 보기
83/155

문제 보기



사용한 것

  • 타일을 채우는 경우의 수를 구하기 위한 bottom-up


풀이 방법

  • dp의 0 번째, 1 번째 인덱스에 1 저장 (점화식을 위해 0 번째 인덱스에 1 저장)
  • i = 2 ~ N 에서 dp[i] = dp[i - 1] + 2 * dp[i - 2] 저장 (문제 조건을 위해 10_007로 나눈 나머지로 저장)


코드

public class Main {

    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 + 1];
        dp[0] = 1;
        dp[1] = 1;

        for(int i = 2; i <= N; i++) {
            dp[i] = ((dp[i - 1] + 2 * dp[i - 2])) % 10_007;
        }

        System.out.println(dp[N]);
    }
}


profile
블로그 이전 -> https://pppp0722.github.io

0개의 댓글