Skip to content

Commit b666cab

Browse files
committed
02.06: dp(Hanyang Popularity Exceeding Competition)
1 parent 34670ca commit b666cab

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Hanyang Popularity Exceeding Competition : 동적 계획법
2+
const input = require("fs")
3+
.readFileSync(0, "utf-8")
4+
.trim()
5+
.split("\n")
6+
.map((v) => v.split(" ").map((v) => +v));
7+
const [n] = input.shift();
8+
const dp = new Array(n).fill(null).map(() => new Array(2).fill(0));
9+
const [O, X] = [0, 1];
10+
let answer = 0;
11+
12+
for (let i = 0; i < n; i++) {
13+
const [pi, ci] = input[i];
14+
15+
for (let j = 0; j < 2; j++) {
16+
const prev = i > 0 ? dp[i - 1][j] : 0;
17+
const target = pi - prev;
18+
if (-1 * ci <= target && target <= ci) {
19+
dp[i][O] = Math.max(dp[i][O], prev + 1);
20+
answer = Math.max(dp[i][O], answer);
21+
} else {
22+
dp[i][X] = Math.max(dp[i][X], prev);
23+
answer = Math.max(dp[i][X], answer);
24+
}
25+
}
26+
}
27+
28+
console.log(answer);

0 commit comments

Comments
 (0)