백준

[실버] 2×n 타일링 (11726번)_JS

chsua 2022. 12. 19. 17:50

문제

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

아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

 

입력

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

 

출력

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

 

내 답안:
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
let input = fs.readFileSync(filePath).toString().trim() ;
input = +input ;

let arr = [0, 1, 2] ; 
for (let i = 3 ; i <= input ; i++ ){
    arr[i] = ((arr[i-2]) + (arr[i-1]))**%10007** ;  //1
}

console.log(arr[input]) ; //2

>> 2에서 %10007을 했는데, 이럼 오버플로우가 되어서 답이 나오지 않음
>> 2에서 하나, 1에서 하나 답은 동일함
>> 비주얼 스튜디오에서 답이 다르게 나오는건 자바스크립트가 오버플로우가 나오면 알아서 변환해서 근사값이 나오기 때문에 그럼,, 원래 동일이 맞음

'백준' 카테고리의 다른 글

[실버] 최소 힙 (1927번)_JS  (0) 2022.12.19
[실버] 유기농 배추 (1012번)_JS  (0) 2022.12.19
[실버] ATM (11399번)_JS  (0) 2022.12.19
[실버] 1, 2, 3 더하기 (9095번)_JS  (0) 2022.12.19
[실버] 바이러스 (2606번)_JS  (0) 2022.12.19