https://www.acmicpc.net/problem/1699
1699번: 제곱수의 합
어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다
www.acmicpc.net
import java.util.Scanner;
//제곱수의 합
public class Main {
static int n;
static int d[];
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
n=in.nextInt();
d=new int[n+1];
d[1]=1;
for(int i=2;i<=n;i++) {
if(Math.pow(i, 2)<=n) d[(int) Math.pow(i, 2)]=1;
if(d[i]==1) continue;
d[i]=i;
for(int j=1;j<=i/2;j++) {
d[i]=Math.min(d[i], d[j]+d[i-j]);
}
}
System.out.println(d[n]);
}
}
'코테 공부' 카테고리의 다른 글
[DP]문제#11.동전2(☆) (0) | 2022.05.11 |
---|---|
[DP]문제#10. 1로 만들기 (0) | 2022.05.11 |
[DP]문제#8.카드구매하기 (0) | 2022.05.11 |
[DP]문제#7.정수삼각형(프로그래머스) (0) | 2022.05.11 |
[DP]문제#5.오르막수(★) (0) | 2022.05.11 |