반응형
문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
출력
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
예제 입력 1 복사
2
예제 출력 1 복사
2
예제 입력 2 복사
9
예제 출력 2 복사
55
정답 풀이
const path = process.platform === "linux" ? "/dev/stdin" : "input.txt"; // 리눅스로 테스트할 땐 따로 설정해주어야 합니다.
const [n] = require("fs")
.readFileSync(path)
.toString()
.trim()
.split("\n")
.map(Number);
function solution(n) {
const memo = [...Array(1000)];
memo[0] = 1;
memo[1] = 1;
for (let i = 2; i < n + 1; i += 1) {
memo[i] = (memo[i - 1] + memo[i - 2]) % 10007;
}
console.log(memo[n]);
}
solution(n);
⭐ 문제 핵심 아이디어 ⭐
1. DP
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 4153번: 직각 삼각형 (JavaScript, NodeJS) (0) | 2022.02.07 |
---|---|
[백준] 11727번: 2×n 타일링 2 (JavaScript, NodeJS) (0) | 2022.02.06 |
[백준] 9095번: 1,2,3 더하기 (JavaScript, NodeJS) (0) | 2022.02.04 |
[백준] 9655번: 돌 게임 (JavaScript, NodeJS) (0) | 2022.02.03 |
[백준] 13975번: 파일 합치기 3 (JavaScript, NodeJS) (0) | 2022.01.28 |