반응형
[ 문제 ]
난이도: D2
문제 번호: 1966
우리나라 화폐 ‘원’은 금액이 높은 돈을 우선적으로 계산할 때 돈의 개수가 가장 최소가 된다.
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(1, int(input())+1):
N = int(input())
money = [50000, 10000, 5000, 1000, 500, 100, 50, 10]
# 몇 개 줬는지 카운트
cnt = [0, 0, 0, 0, 0, 0, 0, 0]
# 지폐들 순회
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 |
반응형
'SW Expert' 카테고리의 다른 글
[SWEA] 1976 시각 덧셈 Python (0) | 2021.05.24 |
---|---|
[SWEA] 1974 스도쿠 검증 Python (0) | 2021.05.24 |
[SWEA] 1966 숫자를 정렬하자 Python (0) | 2021.05.22 |
[SWEA] 1961 숫자 배열 회전 Python (0) | 2021.05.21 |
[SWEA] 1948 날짜 계산기 Python (0) | 2021.05.20 |