이것이 코딩 테스트다/Python : Chapter 3. 거스름돈

거스름돈

문제

카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다.
손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야할 동전의 최소 개수를 구하라.
단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다.

입력

거슬러 줘야 할 돈 N을 입력한다.

출력

거슬러 줘야 할 동전의 최소 개수를 구하라.

풀이

예제 문제에서 입력과 출력 조건을 추가해 문제 풀이하였다. 500, 100, 50, 10 순서로 조건문을 이용해 해당 금액으로 나눈 만큼 동전 개수를 더하고, 나머지를 남은 거슬러 줘야 할 돈 금액으로 하였다.

책에서의 풀이는 500, 100, 50, 10을 배열로 두고 배열을 반복문으로 돌려 해당 요소의 금액으로 나눈 만큼 동전 개수를 더하고, 나머지를 남은 거슬러 줘야 할 돈 금액으로 하였다.

지금은 두 코드 모두 읽는데 지장 없지만 나중에 작성해야 하는 코드가 길어진다면 어떤 방식을 이용하느냐에 따라 코드가 좀 더 간결해질 수 있다고 생각되었다.

나의 풀이
N = int(input())
charge = 0

if N / 500 >= 1:
    charge += N // 500
    N %= 500
if N / 100 >= 1:
    charge += N // 100
    N %= 100
if N / 50 >= 1:
    charge += N // 50
    N %= 50
if N / 10 >= 1:
    charge += N // 10

print(charge)
교재 풀이

practice3-1 교재 풀이

참고 문헌

나동빈, 『이것이 취업을 위한 코딩 테스트다 with 파이썬』, 초판, 한빛미디어, 2020

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.