PS(중단)/BOJ
[11047] 동전 0 (C++)
히명
2024. 5. 13. 15:15
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, K;
cin >> N >> K;
vector<int> coin(N);
for (int i = 0; i < N; i++)
cin >> coin[i];
sort(coin.begin(), coin.end(), greater<int>());
int sum = 0, cnt = 0;
for (int i = 0; i < N; i++) {
if (sum >= K) break;
if (sum + coin[i] > K) continue;
int numcoins = (K - sum) / coin[i];
sum += numcoins * coin[i];
cnt += numcoins;
}
cout << cnt << "\n";
return 0;
}
1. 동전의 개수 numcoins는 만들고자 하는 K원에서 현재까지의 동전의 합 sum원을 뺀 것을, 동전의 가치로 나눈 것
2. sum에는 동전의 개수와 해당 동전의 가치, cnt에는 동전의 개수를 더해준다
3. cnt를 출력