#include <iostream>
using namespace std;
int main() {
int money;
cin>>money;
int remain=1000-money;
int count=0;
count=remain/500+(remain%500)/100+(remain%100)/50+(remain%50)/10+(remain%10)/5+(remain%5)/1;
cout<<count;
}
이렇게 500부터 하나씩 그 당시의 최선으로 적으면 그게 그리디 알고리즘인가보다.
#include <iostream>
int main() {
int left;
std::cin >> left;
left = 1000 - left;
int count = 0, tmp=0;
tmp = left / 500;
count += tmp;
left -= 500 * tmp;
tmp = left / 100;
count += tmp;
left -= 100 * tmp;
tmp = left / 50;
count += tmp;
left -= 50 * tmp;
tmp = left / 10;
count += tmp;
left -= 10 * tmp;
tmp = left / 5;
count += tmp;
left -= 5 * tmp;
tmp = left;
count += tmp;
left -=tmp;
std::cout << count << std::endl;
return 0;
}
'Computer Science > C++' 카테고리의 다른 글
백준 C++ | #19 BOJ2875 대회 or 인턴 C++ 문제 풀이 (0) | 2022.08.18 |
---|---|
백준 C++ | #18 BOJ11047 동전 0 C++ 문제 풀이 (0) | 2022.08.18 |
백준 C++ | #16 BOJ10828 스택 C++ 문제 풀이 (0) | 2022.08.16 |
백준 C++ | #15 BOJ9012 괄호 C++ 문제 풀이 (0) | 2022.08.15 |
백준 C++ | #14 BOJ1927 최소 힙 C++ 문제 풀이 (0) | 2022.08.14 |