dp
생성i
는 n
까지 순회j
제곱이 i
이하일 때까지 순회dp
배열에 적용됨function numSquares(n: number): number {
const dp: number[] = new Array(n + 1).fill(Infinity);
dp[0] = 0;
for (let i = 1; i <= n; i++) {
for (let j = 1; j * j <= i; j++) {
dp[i] = Math.min(dp[i], dp[i - j * j] + 1);
}
}
return dp[n];
}