import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] dp = new int[n+1];
for(int i=1; i<=n; i++) {
dp[i] = i;
for(int j=1; j*j<=i; j++) {
if(dp[i]>dp[i-j*j]+1) { dp[i] = dp[i-j*j]+1; }
}
}
System.out.println(dp[n]);
}
}
'Problem Solving > BOJ' 카테고리의 다른 글
[Silver 2] 15988번 1, 2, 3 더하기 3 (0) | 2022.03.29 |
---|---|
[Gold 5] 2225번 합분해 (0) | 2022.03.28 |
[Silver 2] 1912번 연속합 (0) | 2022.03.28 |
[Gold 4] 14002번 가장 긴 증가하는 부분 수열 4 (0) | 2022.03.28 |
[Silver 2] 11053번 가장 긴 증가하는 부분 수열 (0) | 2022.03.28 |