๐ŸŽฒ ๋ฐฑ์ค€ 12865๋ฒˆ ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ

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

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
45/186

๋ฐฑ์ค€ 12865๋ฒˆ

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin')
  .toString()
  .trim()
  .split("\n")
  .map((item) => item.split(" ").map(Number));

const [N, K] = input[0];

let dp = Array.from(new Array(N + 1), () => new Array(K + 1).fill(0));

for (let i = 1; i <= N; i++) {

  //0๋ถ€ํ„ฐ ํ•œ๊ณ„ ๋ฌด๊ฒŒ ๊นŒ์ง€
  for (let j = 1; j <= K; j++) {

    //๋ฌผ๊ฑด์˜ ๋ฌด๊ฒŒ๊ฐ€ ํ•œ๊ณ„ ๋ฌด๊ฒŒ๋ฅผ ๋„˜์ง€ ์•Š์„ ๋•Œ,
    if (input[i][0] <= j) {
      dp[i][j] = Math.max(
        dp[i - 1][j], //i๋ฒˆ์งธ ๋ฌผ๊ฑด์„ ๋„ฃ์ง€ ์•Š์„ ๋•Œ
        dp[i - 1][j - input[i][0]] + input[i][1] //i๋ฒˆ์งธ ๋ฌผ๊ฑด์„ ๋„ฃ์„ ๋•Œ, j - input[i][0]: ํ•œ๊ณ„๋ฌด๊ฒŒ-๋ฌผ๊ฑด๋ฌด๊ฒŒ
      );
    }else {
      dp[i][j] = dp[i - 1][j];
    }

  }

}

console.log(dp[N][K]);

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