본문 바로가기

ALG/ALG Solve

[C++] 백준 5585번 - 거스름돈

https://www.acmicpc.net/problem/5585

[5585번: 거스름돈

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

www.acmicpc.net](https://www.acmicpc.net/problem/5585)

다시 알고리즘 공부를 시작해야될 것 같다. C++로 계속 진행할지 Python으로 언어를 교체할지 고민을 많이 했지만 골4 찍어놓은게 조금 아까워서 일단은 C++로 진행하기로 했다. 많이 까먹었지만 금방 다시 기억나지 않을까..?

 

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int coin[6]={500,100,50,10,5,1};
    int n, index=0, ans=0;
    cin>>n;
    int change=1000-n;

    while(change>0){
        if(change>=coin[index]){
            change-=coin[index];
            ans++;
        }
        else{
            if(index==5) break;
            index++;
        }
    }

    cout<<ans<<"\n";

    return 0;
}

 

오랜만에 짜는거라 깔끔하게 짜진 못한 것 같다. 굉장히 쉬운 문제임에도 코드가 이쁘진 않아보인다. 거스름돈 동전을 배열로 사용해서 풀었다.

'ALG > ALG Solve' 카테고리의 다른 글

[C++] 백준 10610번 - 30  (0) 2023.07.14
[C++] 백준 1789번 - 수들의 합  (0) 2023.07.14
C++) 백준 4375번 - 1  (0) 2023.03.01
C++) 백준 18870번 - 좌표 압축  (0) 2023.02.21
C++) 백준 2170번 - 선 긋기  (0) 2023.02.14