SW Expert Academy - D2_1970

D2_1970. 쉬운 거스름돈

문제:

  • 우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다.
  • S마켓에서 사용하는 돈의 종류는 다음과 같다. 50,000 원 10,000 원 5,000 원 1,000 원 500 원 100 원 50 원 10 원
  • S마켓에서 손님에게 거슬러 주어야 할 금액 N이 입력되면 돈의 최소 개수로 거슬러 주기 위하여 각 종류의 돈이 몇 개씩 필요한지 출력하라.

입력:

  1. 테스트 케이스 T
  2. 각 테스트 케이스에는 N이 주어진다. (10 ≤ N ≤ 1,000,000) 마지막 자릿수는 항상 0이다.

출력:

ex)

#1 0 3 0 2 1 3 1 0 #2 0 0 0 0 0 1 1 1

생각한 로직:

  • 고액권 부터 나눠서 몫은 출력 나머지는 다음 금액으로 넘겨서 남겨줄수 있는 금액을 다 쓸 때까지 돌린다.

코딩:

1
2
3
4
5
6
7
8
9
10
for tc in range(1,int(input())+1):
    money=[50000,10000,5000,1000,500,100,50,10]
    N = int(input())
    i=0
    print("#{}".format(tc))
    while i<len(money):
       print(N//money[i],end=" ")
       N=N%money[i]
       i+=1
    print()