반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 알고리즘
- Nestjs
- HTTP
- 그래프
- TCP
- 타입 챌린지
- 백준
- HTTP 완벽 가이드
- ip
- 문자열
- 타입스크립트
- Crawling
- Node.js
- 소켓
- 레벨 1
- Algorithm
- 수학
- dp
- 쉬운 문제
- dfs
- 프로그래머스 레벨 2
- javascript
- 가천대
- 프로그래머스
- typescript
- BFS
- socket
- 자바스크립트
- 크롤링
- type challenge
Archives
- Today
- Total
kakasoo
[node.js] 포도주 시식 ( 백준 2165번 ) 본문
반응형
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이라고 해버린 다음 그냥 다음으로 넘어가버리니 개발자 입장에서는 오휴를 찾기가 힘든 것이다.
반응형
'프로그래밍 > 알고리즘 풀이' 카테고리의 다른 글
[node.js] 다리 놓기 ( 백준 1010번 ) (0) | 2021.03.30 |
---|---|
[node.js] 잃어버린 괄호 (백준 1541번) (0) | 2021.03.30 |
[node.js] 평범한 배낭 ( 백준 12865번 ) (0) | 2021.03.26 |
[node.js] 신나는 함수 실행 ( 백준 9184번 ) (0) | 2021.03.26 |
[node.js] A -> B ( 백준 16953번 ) (0) | 2021.03.26 |