kakasoo

[node.js] 이친수 ( 백준 2193번 ) 본문

프로그래밍/알고리즘 풀이

[node.js] 이친수 ( 백준 2193번 )

카카수(kakasoo) 2021. 3. 25. 17:03
반응형
const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    main(Number(line));
    rl.close();
}).on("close", () => {
    process.exit();
});

const main = (line) => {
    const DP = new Array(line + 1).fill(0);
    for (let i = 1; i <= line; i++) {
        DP[i] = [];
    }
    DP[1] = [BigInt(0), BigInt(1)];

    for (let i = 2; i <= line; i++) {
        DP[i][1] = DP[i - 1][0];
        DP[i][0] = DP[i - 1][0] + DP[i - 1][1];
    }
    console.log(String(DP[line].reduce((acc, cur) => acc + cur)));
};

전형적인 DP 문제로, 난이도는 낮다. 다만, bigInt를 써야 한다.
bigInt를 쓴 경우와 그렇지 않은 경우는, n이 90일 때 1,000 정도의 차이가 발생한다.

반응형