백준 10826번 피보나치4 Node.JS

0

Problem Solving

목록 보기
45/49
post-thumbnail

문제

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

풀이

JavaScript의 Number 자료형 최대값은 2의 53제곱 - 1 이므로, BigInt 자료형을 이용해야한다. 사용방법은 BigInt로 감싸주거나 정수에 n을 붙이면 된다.

배열을 이용한 풀이

const N = Number(require("fs").readFileSync("/dev/stdin"));

function solution(number) {
    const table = new Array(number + 1).fill(0n);
    table[1] = 1n;
    for (let i = 2; i <= number; i++) {
        table[i] = table[i - 1] + table[i - 2];
    }
    return String(table[number]);
}

console.log(solution(N));

배열을 이용하지 않는 메모이제이션

const N = Number(require("fs").readFileSync("/dev/stdin"));
function solution(number) {
    let x = 0n;
    let y = 1n;
    for (let i = 0; i < number; i++) {
        [x, y] = [y, x + y];
    }
    return String(x);
}
console.log(solution(N));

0개의 댓글