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

wannabeking·2022년 7월 9일
0

코딩테스트

목록 보기
35/155

문제 보기



사용한 것

  • 한칸 혹은 두칸을 차지하는 타일로 모두 채우는 경우의 수를 구하기 위한 bottom-up


풀이 방법

  • 결국 가로로 한 칸을 차지하거나 두 칸을 차지하는 타일로 채우는 경우의 수를 구하는 문제이다.
  • 따라서 d의 i 번째 값을 구하기 위해 d의 i-1, i-2를 더한다.
  • 문제에 10007로 나눈 나머지를 구하라고 나와있다. 범위 때매 그런가 왜 있는지는 잘 모르겠다.


코드

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

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[] d = new int[N + 1];
        d[1] = 1;
        if(N > 1) {
            d[2] = 2;
        }
        for (int i = 3; i <= N; i++) {
            d[i] = (d[i - 1] + d[i - 2]) % 10007;
        }

        System.out.println(d[N] % 10007);
    }
}


profile
내일은 개발왕 😎

0개의 댓글