본문 바로가기
알고리즘/백준

[백준/C,C++] 5585번: 거스름돈

by 이민훈 2021. 4. 20.

www.acmicpc.net/problem/5585

 

5585번: 거스름돈

타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사

www.acmicpc.net

풀이

그리디 알고리즘 문제 중에서 가장 기초적인 문제입니다.

 

현재 받을 수 있는 화폐의 종류 중 값이 큰 것부터 잔돈에서 빼주면 됩니다.

 

#include<iostream>

using namespace std;

int main(void)
{
    int n; cin >> n;
    n = 1000 - n;
    int changes[6] = { 500, 100, 50, 10, 5, 1 };
    int res = 0;

    for (int i = 0; i < 6; i++) {
        int tmp = n / changes[i];
        n -= (tmp * changes[i]);
        res += tmp;
        if (n == 0) break;
    }

    cout << res;

    return 0;
}

반례

Input

10

Output

10

 

Input

520

Output

8

 

Input

1000

Output

0

댓글