[백준 | Java] 11726 2×n 타일링

알린·2024년 1월 20일

baekjoon

목록 보기
19/68

내 풀이

DP 문제푸는 방법

  1. 테이블 정의
  2. 점화식 찾기
  3. 초기값 정하기

테이블 정의

dp[i] = 2i 크기의 직사각형을 12, 2*1 크기의 타일로 채우는 방법의 수

점화식 찾기

dp[i] = dp[i-1] + dp[i-2]

초기값 정하기

dp[1] = 1
dp[2] = 2

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class _11726 {
    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+2];
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i <= n; i++) {
            // 마지막에만 % 10007 연산을 해주면 중간에 저장되는 값이 int 값을 넘어서 오버플로우 발생
            dp[i] = (dp[i-1] + dp[i-2])%10007;
        }
        System.out.println(dp[n]);
    }
}

profile
짱이 되고싶은 개발 기록

0개의 댓글