링크 : www.acmicpc.net/problem/11047
문제의 핵심은 '그리디 기법'으로, 가장 가능성이 높은 지점을 선택하면 된다.
이 문제는 대상이 '동전'이며, 모든 동전이 5의 배수로 떨어져 오름차순으로 배열되서 제공되기 때문에
어려움 없이 풀 수 있었다.
핵심은 원하는 값 보다 크지 않은 값을 채택하면 된다는 점이다.
#include <iostream>
using namespace std;
int main(void) {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n = 0, k = 0, arr[11], total = 0;
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> arr[i];
}
while (n > 0&&k!=0) {
if (k >= arr[n]) {
k -= arr[n];
total++;
}
else n--;
}
cout << total << "\n";
return 0;
}
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#11399번 ATM (C++) (0) | 2020.10.30 |
---|---|
#1931번 회의실배정 (C++) (0) | 2020.10.30 |
#2583번 영역구하기 (C++) (0) | 2020.10.20 |
#1912번 연속합 (C++) (0) | 2020.10.20 |
#11053번 가장 긴 증가하는 부분 수열 (C++) (0) | 2020.10.20 |