프로그래밍/알고리즘 풀이
[node.js] 포도주 시식 ( 백준 2165번 )
카카수(kakasoo)
2021. 3. 29. 18:22
반응형
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let count = 0;
const input = [0];
rl.on("line", (line) => {
if (!count) {
count = Number(line);
} else {
input.push(Number(line));
if (input.length === count + 1) {
main();
rl.close();
}
}
}).on("close", () => {
process.exit();
});
const main = () => {
const DP = new Array(count + 1).fill(0);
DP[1] = input[1];
DP[2] = input[2] + DP[1];
DP[3] = Math.max(DP[1] + input[3], input[2] + input[3]);
for (let i = 1; i <= 3; i++) {
if (isNaN(DP[i])) {
DP[i] = 0;
}
}
for (let i = 4; i <= count; i++) {
DP[i] = Math.max(
input[i] + DP[i - 2],
input[i] + input[i - 1] + DP[i - 3],
input[i] + input[i - 1] + DP[i - 4],
DP[i - 1]
);
}
console.log(Math.max(...DP));
};
자바스크립트에서는 타입이 없어서 버그를 찾기가 쉽지 않다.
90%에서 틀렸다고 나오곤 했는데, n이 1이나 2인 경우가 있기 때문이다. 그런데 자바스크립트에서는 NaN이라고 해버린 다음 그냥 다음으로 넘어가버리니 개발자 입장에서는 오휴를 찾기가 힘든 것이다.
반응형