문제
풀이
그리디
기본적인 그리디 알고리즘 문제. 큰 동전부터 거스름돈을 최대한 처리한다.
코드
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int change = 1000 - N;
int coins[6] = { 500, 100, 50, 10, 5, 1 };
int current = 0;
int answer = 0;
// 큰 동전부터 시작하여, 최대한 거슬러 줄 수 있을 때까지 준다.
while (current < 6)
{
while (change - coins[current] >= 0)
{
change -= coins[current];
answer++;
}
current++;
}
cout << answer;
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준][C++] 13305: 주유소 (0) | 2024.01.27 |
---|---|
[백준][C++] 2217: 로프 (0) | 2024.01.26 |
[백준][C++] 2725: 보이는 점의 개수 (2) | 2024.01.24 |
[백준][C++] 10166: 관중석 (0) | 2024.01.23 |
[백준][C++] 1188: 음식 평론가 (1) | 2024.01.22 |