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