Notice
Recent Posts
Link
정화 코딩
[C++] Four Squares (백준 17626번) 본문
https://www.acmicpc.net/problem/17626
#include <iostream>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
vector<int> dp(n + 1, 100);
dp[0] = 0;
dp[1] = 1;
for (int i = 1; i < 300; i++) {
int sq = i * i;
int idx = sq;
while (idx < n + 1) {
dp[idx] = min(dp[idx - sq] + 1, dp[idx]);
idx++;
}
}
cout << dp[n] << '\n';
}
"최소" 개수의 제곱수 합으로 표현해야 한다는 점에서 dp가 떠올랐다. 0부터 n까지 배열로 만들고 제곱수를 더해가며 dp 배열을 채웠다. (AC)
'PS' 카테고리의 다른 글
[C++] 부분합 (백준 1806번) (0) | 2024.09.15 |
---|---|
[C++] 파티 (백준 1238번) (0) | 2024.09.15 |
[C++] 대회 장소 준비 (백준 9555번) (0) | 2024.09.09 |
[C++] 뱀과 사다리 게임 (백준 16928번) (0) | 2024.09.09 |
[C++] 카드 놓기 (백준 18115번) (0) | 2024.09.09 |
Comments