코딩테스트/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)))