꾸준히 합시다

백준 파이썬 5585번: 거스름돈 본문

코딩 테스트 문제 풀이

백준 파이썬 5585번: 거스름돈

tturbo0824 2021. 3. 18. 18:05

www.acmicpc.net/problem/5585

 

5585번: 거스름돈

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

www.acmicpc.net

문제 유형: 그리디 알고리즘

 

# Solution 1

change = 1000 - int(input())
coins = [500, 100, 50, 10, 5, 1]

count = 0

for coin in coins:
    count += change // coin
    change %= coin # change = change % coin

print(count)
  1. 1000원에서 입력 값을 뺀 나머지를 change 변수에 저장한다.
  2. 잔돈을 큰 수부터 내림차순으로 정렬한 coins 배열을 만들어 준다. 큰 액수의 동전부터 거슬러주어야 최소한의 동전이 사용된다.
  3. 반복문을 돌면서 동전의 총 개수 count에 change를 coin으로 나눈 몫을 더해준다.
  4. change는 이전 단계의 나머지가 되고 그 나머지로 위의 과정을 반복한다.
  5. 마지막으로 count를 출력해준다.

 

Comments