Lennon FE

[백준 11726번] 2 x n 타일링 - 자바스크립트(nodejs) 본문

카테고리 없음

[백준 11726번] 2 x n 타일링 - 자바스크립트(nodejs)

Lennon 2022. 1. 25. 23:41
728x90
반응형

https://www.acmicpc.net/problem/11726

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

const fs = require('fs');
const input = +fs.readFileSync('dev/stdin').toString().trim();

const obj = {
  1: 1,
  2: 1,
};

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

console.log(obj[input]);

타일 수는 피보나치로도 풀 수 있다. 그러나 해당 문제에선 입력값이 너무 크기 때문에 

피보나치로 구현하면 시간초과가 기본적으로 뜬다.

 

2 x n 타일링 문제는 점화식이 구현된다.

DP[i] = DP[i-1] + DP[i-2] 이다.

 

따라서 초기값만 지정해주고, 그냥 점화식으로 구현해주면 된다. 

728x90
반응형
Comments