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

- Author: @laetipark
- Published: 2023-05-23
- Updated: 2023-12-11
- Source: http://blex.me/@laetipark/%EC%9D%B4%EA%B2%83%EC%9D%B4-%EC%BD%94%EB%94%A9-%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%8B%A4python-chapter-3-%EA%B1%B0%EC%8A%A4%EB%A6%84%EB%8F%88
- Tags: python, algorithm, 이것이취업을위한코딩테스트다, 그리디알고리즘, 이코테

---

## 거스름돈

### 문제
카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다.  
손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야할 동전의 최소 개수를 구하라.  
단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다.

### 입력
거슬러 줘야 할 돈 N을 입력한다.

### 출력
거슬러 줘야 할 동전의 최소 개수를 구하라.

### 풀이
예제 문제에서 입력과 출력 조건을 추가해 문제 풀이하였다. 500, 100, 50, 10 순서로 조건문을 이용해 해당 금액으로 나눈 만큼 동전 개수를 더하고, 나머지를 남은 거슬러 줘야 할 돈 금액으로 하였다.

책에서의 풀이는 500, 100, 50, 10을 배열로 두고 배열을 반복문으로 돌려 해당 요소의 금액으로 나눈 만큼 동전 개수를 더하고, 나머지를 남은 거슬러 줘야 할 돈 금액으로 하였다.

*지금은 두 코드 모두 읽는데 지장 없지만 나중에 작성해야 하는 코드가 길어진다면 어떤 방식을 이용하느냐에 따라 코드가 좀 더 간결해질 수 있다고 생각되었다.*

##### 나의 풀이
```python
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 교재 풀이](https://github.com/ndb796/python-for-coding-test/blob/master/3/1.py)

### 참고 문헌
[나동빈, 『이것이 취업을 위한 코딩 테스트다 with 파이썬』, 초판, 한빛미디어, 2020](https://www.hanbit.co.kr/store/books/look.php?p_code=B8945183661)
