728x90
https://www.acmicpc.net/problem/5585
greedy 알고리즘의 아주 대표적인 문제이다.
#include <iostream>
using namespace std;
int main() {
int cost;
cin >> cost;
int money[] = { 500, 100, 50, 10, 5, 1 };
int change = 1000 - cost;
int total = 0;
int cnt = 0;
while (true) {
if (change == total) break;
if (total + money[0] <= change) {
total += money[0];
cnt++;
}
else if (total + money[1] <= change) {
total += money[1];
cnt++;
}
else if (total + money[2] <= change) {
total += money[2];
cnt++;
}
else if(total + money[3] <= change) {
total += money[3];
cnt++;
}
else if (total + money[4] <= change) {
total += money[4];
cnt++;
}
else if (total + money[5] <= change) {
total += money[5];
cnt++;
}
}
cout << cnt;
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 2864 5와 6의 차이 (0) | 2020.02.22 |
---|---|
[백준] 16637번 괄호 추가하기 (0) | 2020.02.21 |
[백준] 10995번 별 찍기 - 20 (0) | 2020.02.20 |
[백준] 3980번 선발 명단 (0) | 2020.02.20 |
[백준] 1182번 부분수열의 합 (0) | 2020.02.20 |