백준 풀이/자바(Java)

백준 11726 자바 - 2×n 타일링

콘스_ 2024. 5. 30. 12:52
// 2×n 타일링
package Silver_III_3;

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

public class Ex11726 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int[] tile = new int[1001];
        tile[1] = 1;
        tile[2] = 2;

        for (int i = 3; i < tile.length; i++) {
            tile[i] = (tile[i-2] + tile[i-1]) % 10007;
        }

        System.out.println(tile[n]);
    }
}
n 1 2 3 4 5
방법의 수 1 2 3 5 8

tile[3] = tile[1] + tile[2] 이런식으로 n의 증가에 따라 방법의 수가 증가한다.

10007의 나머지로 계산하는 이유는 오버플로우가 안 나게 하기 위해서다.