๐ŸŽฒ๋ฐฑ์ค€ 14501๋ฒˆ ํ‡ด์‚ฌ

Jeongeunยท2023๋…„ 4์›” 6์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
44/187

๋ฐฑ์ค€ 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));

0๊ฐœ์˜ ๋Œ“๊ธ€