🔗 Problem Link

 

2720번: 세탁소 사장 동혁

각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다.

www.acmicpc.net


❔Thinking

  • 25, 10, 5, 1 의 동전으로 거스름돈을 준다.
  • 최소한의 동전 사용을 위해 가장 큰 단위부터 주는 방식을 택한다.

💻Solution

import sys
input = sys.stdin.readline
T = int(input())
coins = [25, 10, 5, 1]
for _ in range(T):
    result = [0, 0, 0, 0]
    C = int(input())
    i = 0
    while C > 0:
        if C >= coins[i]:
            result[i] = C // coins[i]
            C = C % coins[i]
        i += 1
    print(' '.join(map(str, result)))

 

import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
    n = int(input())
    Quarter, n = divmod(n, 25)
    Dime, n = divmod(n, 10)
    Nickel, n = divmod(n, 5)
    Penny = n
    print(Quarter, Dime, Nickel, Penny)

🗝️keypoint

  1. divmod(a,b)는 a를 b로 나눈 몫과 나머지를 tuple 형태로 반환한다. 
  2. 잔돈은 큰 단위부터 나누어갈 때, 잔돈과 단위 동전의 금액이 같은 경우도 나눈다. (C >= coins[i])

+ Recent posts