728x90
import java.util.Scanner;
public class BJ17626 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();//입력받을 수 입력.
//동적할당 초기화
int[] dp = new int[n+1];
for (int i = 1; i <= n; i++) {
dp[i] = i;
}
//계산
for (int i = 1; i <= n; 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]);
}
}
동적프로그래밍으로 풀면 된다.
728x90
'백준' 카테고리의 다른 글
백준 1074 - Java (0) | 2024.10.21 |
---|---|
백준 1260 - Java (2) | 2024.10.20 |
백준 9461 - Java (1) | 2024.10.19 |
백준 11659 - Java (0) | 2024.10.18 |
백준 2606 - Java (0) | 2024.10.18 |