[DP] [백준 / 1699] 실버 2 - 제곱수의 합 (java/자바)



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(r.readLine());
int []dp = new int[N+1];
dp[0] =0;
for(int i=1; i<=N; i++){
dp[i] = i;
for( int j=1; j*j <= i ; j++){
dp[i] = Math.min(dp[i] , dp[i- j*j] +1);
}
}
System.out.println(dp[N]);
}
}