본문 바로가기

알고리즘, 문제 풀이기록

거스름돈

<내 풀이>

n = int(input())

cnt = 0

while n != 0:
    if n % 500 > 0 :
        cnt += n % 500
        n = n % 500
    elif n % 100 > 0 :
        cnt += n % 100
        n = n % 100
    elif n % 50 > 0 :
        cnt += n % 50
        n = n % 50
    elif n % 10 > 0 :
        cnt += n % 10
        n = n % 10

print(cnt)

<정답>

n = 1260
count = 0

# 큰 단위의 화폐부터 차례대로 확인하기
coin_types = [500, 100, 50, 10]

for coin in coin_types:
    count += n // coin # 해당 화폐로 거슬러 줄 수 있는 동전의 개수 세기
    n %= coin

print(count)

리스트와 for문을 활용하면 효과적으로 큰 단위 화폐부터 차례로 거스름돈을 받을 수 있다.