문제
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 |