코딩테스트/SW Expert Academy
[D2] 1970. 쉬운 거스름돈
셂
2024. 10. 11. 09:39
1970. 쉬운 거스름돈
✏️ 문제 풀이
- N // money를 통해 현재 화폐로 나눌 수 있는 개수를 계산하고, 이를 counts 리스트에 추가
- N %= money를 통해 남은 금액을 업데이트하여 다음 화폐로 나누기 위한 준비
- map 함수: 주어진 함수를 iterable(반복 가능한 객체)의 각 요소에 적용하여 새로운 iterable을 생성
→ map(str, counts)는 counts 리스트의 각 요소를 문자열로 변환
- join 메서드: 문자열의 리스트를 하나의 문자열로 결합. 이때 리스트의 각 요소 사이에 지정한 문자열을 삽입 → ' ' (공백)를 사용하여 각 요소 결합
- join 메서드는 문자열의 리스트를 필요로 하므로, counts 리스트의 각 요소가 정수형일 경우 문자열로 변환해야 함 → map을 사용하여 정수를 문자열로 변환하는 것 필요
T = int(input())
# 화폐 종류 리스트
money_types = [50000, 10000, 5000, 1000, 500, 100, 50, 10]
for t in range(1, T + 1):
N = int(input())
# 각 화폐 종류의 개수를 저장할 리스트
counts = []
for money in money_types:
count = N // money
counts.append(count)
N %= money
print(f'#{t}')
print(' '.join(map(str, counts)))