그리드 알고리즘을 이용해서 큰 수부터 계속 빼주는 방식으로 계산하면 된다.
지금 생각났지만 /를 이용하면 더 빠르게 구할 수 있을 듯하다. -> 이건 여러분이 해보시길
#include <iostream>
int main() {
int n, k, count = 0;
std::cin >> n >> k;
int *coins = new int[n];
for (int i = 0; i < n; i++) {
std::cin >> coins[i];
}
while (k > 0) {
for (int i = n-1; i > -1; i--) {
while (k >= coins[i]) {
k -= coins[i];
count++;
}
}
}
std::cout<<count<<std::endl;
return 0;
}'코딩 > cpp' 카테고리의 다른 글
| [백준] 17219번 (0) | 2025.09.25 |
|---|---|
| [백준] 11399번 (0) | 2025.09.25 |
| [백준] 14626번 (0) | 2025.09.25 |
| inline 함수에 대해 (0) | 2025.09.15 |
| CMake 학습 로드맵 (0) | 2025.09.13 |