๐ ์ฒ์์ ์์ชฝ ๋ฐ๋ณต๋ฌธ ์์ด ๊ฐ์ฅ ํฐ ์ ๊ณฑ๊ทผ ์ผ๋๋ก ๊ฐ์ ๊ณ์ฐํด์ ํ๋ ธ๋ค. (๋ฐ๋ก:52)
๐ dp๋ฅผ index์๋ก ์ด๊ธฐํํด์ฃผ๋ฉด ์ฝ๋๊ฐ ๋ ๊ฐ๊ฒฐํด ์ง ์ ์์ ๊ฒ ๊ฐ๋ค.
์ฝ๋
const fs = require('fs');
const input = +fs.readFileSync('/dev/stdin').toString().trim();
const dp = [0];
for (let i = 1; i <= input; i++) {
if (i % Math.sqrt(i) === 0) {
dp[i] = 1;
} else {
const value =Math.floor(Math.sqrt(i));
for (let j = 1; j <= value; j++) {
dp[i] = dp[i]
? Math.min(dp[j ** 2] + dp[i - j ** 2], dp[i])
: dp[j ** 2] + dp[i - j ** 2];
}
}
}
console.log(dp[input]);