반응형
https://www.acmicpc.net/problem/1699
결론
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int dp[] = new int [100001];
for(int i=0; i<=100000; i++){
dp[i] = Integer.MAX_VALUE;
}
dp[0] = 0;
dp[1] = 1;
dp[2] = 2;
dp[3] = 3;
dp[4] = 1;
for(int j=5; j<=n; j++){
for(int i=1; i*i<=j; i++){
if(i*i <= j){
dp[j] = Math.min(dp[j], dp[j-i*i]+1);
}
}
}
System.out.println(dp[n]);
}
}
반응형
'개발공부 > 알고리즘' 카테고리의 다른 글
백준 9465번 - 스티커 [DP/자바 JAVA] (1) | 2024.12.27 |
---|---|
백준 2225번 - 합분해 [DP/자바 JAVA] (0) | 2024.10.07 |
백준 1912번 - 연속합 [DP/자바 JAVA] (0) | 2024.10.03 |
백준 14002번 - 가장 긴 증가하는 부분 수열 4 [DP/자바 JAVA] (0) | 2024.09.28 |
백준 11053번 - 가장 긴 증가하는 부분 수열 [DP/자바 JAVA] (1) | 2024.09.26 |