[BJ / 11726] 2xn 타일링

Lainlnya·2023년 4월 9일
0

BaekJoon

목록 보기
36/37

문제

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)

출력

첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.

예시

풀이

1개로 만들 수 있는 케이스는 1가지
2개로 만들 수 있는 케이스는 2가지
3개로 만들 수 있는 케이스

아래와 같으므로,
memo[i] = memo[i - 1] + memo[i - 2] 와 같다.

const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    input = parseInt(line);
    rl.close();
});

rl.on("close", () => {
    let memo = {
        1: 1,
        2: 2,
    };

    for (let i = 3; i <= input; i++) {
        memo[i] = (memo[i - 1] + memo[i - 2]) % 10007;
    }

    console.log(memo[input]);
});
profile
Growing up

0개의 댓글