728x90
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<int>coin(n);
int cnt = 0;
for (int i = 0; i < n; i++) {
cin >> coin[i];
}
sort(coin.begin(), coin.end(), greater<int>());
for (int i = 0; i < n; i++) {
while (k - coin[i] >= 0) {
cnt++;
k -= coin[i];
}
}
cout << cnt << '\n';
}
입력되는 숫자를 역순으로 정렬하고 입력된 k 값인 4,200원보다 작은 가장 큰 수(1000)부터 뺄셈을 진행하고 카운트를 늘림. 남는 200원도 동일하게 100원으로 빼주게 된다.
몇 개가 필요한지는 cnt로 확인 가능.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=namjs1540&logNo=221578707970
728x90
'알고리즘 연습' 카테고리의 다른 글
C++ 1541 잃어버린 괄호 (0) | 2021.10.07 |
---|---|
C++ 1931 회의실 배정 (0) | 2021.10.07 |
C++ 11650 좌표 정렬하기 (1) | 2021.10.01 |
C++ 1427 소트 인사이드 (0) | 2021.09.30 |
C++ 2231 분해합 (0) | 2021.09.30 |