SW Expert

[SWEA] 1970 쉬운 거스름돈 Python

꿀떡최고 2021. 5. 23. 10:33
반응형

[ 문제 ]

 

난이도:  D2

문제 번호:  1966

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PsIl6AXIDFAUq&categoryId=AV5PsIl6AXIDFAUq&categoryType=CODE&problemTitle=1970&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다.

S마켓에서 사용하는 돈의 종류는 다음과 같다.
50,000 원
10,000 원
5,000 원
1,000 원
500 원
100 원
50 원
10 원

S마켓에서 손님에게 거슬러 주어야 할 금액 N이 입력되면

돈의 최소 개수로 거슬러 주기 위하여 각 종류의 돈이 몇 개씩 필요한지 출력하라.

 


 

[ 코드 ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
for tc in range(1int(input())+1):
    N = int(input())
    money = [5000010000500010005001005010]
    # 몇 개 줬는지 카운트
    cnt = [00000000]
    # 지폐들 순회
    for m in range(len(money)):
        # 가장 큰 단위 지폐부터 줄 수 있는 만큼 줌
        change = N //money[m]
        # 지폐 단위보다 거스름돈이 작은 경우 카운트 방지
        if change >= 1:
            cnt[m] += change
            # change는 나눈 몫이니까 지폐 곱하기 change
            N -= change*money[m]
    print('#{}'.format(tc))
    for i in cnt:
        print('{}'.format(i), end=' ')
    print()
cs
반응형