๋ฐฑ์ค 14501๋ฒ
์ฝ๋
const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const N = +input.shift();
input = input.map((item) => item.split(" ").map(Number));
let dp = new Array(N).fill(0);
for (let i = 0; i < N; i++) {
const [period, profit] = input[i];
//ํด์ฌ ์ ์ ์ฒ๋ฆฌํ ์ ์๋ ์ผ
if (i + period > N) continue;
//i์ผ์ ์๋ด์ ํ์๋์ ์ด์ค์ ๋ํด์ค
dp[i] = dp[i] + profit;
//i์ผ์ ์๋ ์๋ด์ด ๊ฑธ๋ฆฌ๋ ์๊ฐ ์ดํ์ dp๊ฐ ๊ฐฑ์
for (let j = i + period; j < N; j++) {
dp[j] = Math.max(dp[j], dp[i]);
}
}
console.log(Math.max(...dp));