[DP] Perfect Squares
2021. 4. 5. 16:54ㆍ프로그래밍-코딩테스트/LeetCode
perfect squeres는 결국 제곱수를 말하는데 가장 적게 쪼갤 수 있는 제곱수 경우의 수를 구하라는 문제이다
예컨데 13이라면 4와 9라는 제곱수를 더한 꼴이 가장 적은 경우의 수일 것이다.
전형적인 dp문제이다
dp라는 배열을 n까지 만든다
이때 초깃값으로 dp[0]은 0일 것이다.
dp[ i ]는 i라는 수에 대한 minmum squre일 것이다.
따라서 이전 제곱수를 빼가면서 각 element의 해를 구하면 된다.
예를 들어 dp[13]은 기존 13의 값과 dp[13-1], dp[13-4]. dp[13-9] 를 비교하면 된다.
이 비교값중 가장 작은 값이 dp[13] 이 될 것이다.
주의할 부분은 dp[i]는 이미 만들어진 원소이므로 초깃값이 1이라는 부분이다
'프로그래밍-코딩테스트 > LeetCode' 카테고리의 다른 글
[DFS] Number of Islands (0) | 2021.04.06 |
---|---|
[Array, DP] Maximum Product Subarray (0) | 2021.04.05 |
[Hash, Two Pointer] Longest Substring Without Repeating Characters (0) | 2021.04.05 |
[Array] Shortest Unsorted Continuous Subarray (0) | 2021.04.05 |
[DP, Tree] House Robber III (0) | 2021.04.05 |