[백준/Java] 17626 - Four Squares
·
코딩테스트/백준
https://www.acmicpc.net/problem/17626문제풀이자연수 N이 주어질 때 N을 최소 개수의 제곱수들의 합으로 나타내는 문제이다 dp[i] 값을 찾기 위해 i에서 뺄 수 있는 모든 제곱수(j*j)를 탐색한다예를 들어 i=13 이면, 1^2, 2^2, 3^3을 차례대로 빼보는 것이다for (int j = 1; j * j 점화식을 세워보면 dp[i] = dp[i - (어떤 제곱수)] + 11을 더해주는 것은 제곱수를 뺀 경우의 수를 다시 더해주기 위함이다dp[13]을 구한다고 생각해보자j =1 : 13 - 1^2 = 12, dp[12]의 값에 1^2 항 하나를 추가한 것과 같다 => dp[12] + 1 = 4j =2 : 13 - 2^2 = 9, dp[9]의 값에 2^2 항 하나를 추가..