Algorithm/BOJ

[c++][BOJ] 거스름돈

kim-hasa 2021. 10. 25. 16:09

https://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(){
    int coin;
    cin >> coin;
    
    coin = 1000 - coin;
    int count = 0;
    
    while(coin > 0){
        if(coin >= 500)
        {
            coin -= 500;
            count++;
        }
        else if(coin >= 100)
        {
            coin -= 100;
            count++;
        }
        else if(coin >= 50)
        {
            coin -= 50;
            count++;
        }
        else if(coin >= 10)
        {
            coin -= 10;
            count++;
        }
        else if(coin >= 5)
        {
            coin -= 5;
            count++;
        }
        else if(coin >= 1)
        {
            coin -= 1;
            count++;
        }
    }
    
    cout << count;
}