프로그래밍/알고리즘 풀이
[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 정도의 차이가 발생한다.
반응형