#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
int main() {
vector<int> a;
int N;
cin >> N;
vector<int> dp(N + 1, N);
dp[0] = 0;
for (int i = 1; i <= N; i++)
{
for (int j = 1; j * j <= i; j++)
{
dp[i] = min(dp[i], dp[i - j * j] + 1);
}
}
cout << dp[N] << endl;
return 0;
}
'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글
[C++ / 백준 9465번] 스티커 (0) | 2024.11.28 |
---|---|
[C++ / 백준 2225번] 합분해 (0) | 2024.11.23 |
[C++ / 백준 1912번] 연속합 (0) | 2024.11.22 |
[C++ / 백준 11053번] 가장 긴 증가하는 부분 수열 (0) | 2024.11.19 |
[C++/백준 15990번] 1, 2, 3 더하기 5 (0) | 2024.11.14 |