https://www.acmicpc.net/problem/5585
5585번: 거스름돈
타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사
www.acmicpc.net
1000엔에서 임의의 가격의 물건을 구매 했을 때 가장 동전을 적게 받는 방법을 찾으시오.
잔돈(동전의 종류) : 500엔, 100엔, 50엔, 10엔, 5엔, 1엔
import sys | |
sys.stdin = open("5585_input.txt", "r") | |
# input | |
cost = int(input()) | |
yen = 1000 - cost | |
count = 0 | |
coins = [500, 100, 50, 10, 5, 1] | |
# process | |
for coin in coins: | |
if (yen / coin) >= 1: | |
count += yen // coin | |
yen = yen % coin | |
# output | |
print(count) | |
단위가 큰 엔부터 먼저 나누어 몫이 동전의 개수가 된다.
그리디 알고리즘을 공부하면서 가장 기본적인 코드를 한 번 수행해보았다.
몫을 오랜만에 계산해봐서 //를 /로 해서 한 번 미스가 있었다.
해당 코드는 에디터가 코드 연습을 위해 직접 작성하였습니다.
혹시 오류가 있거나 더 좋은 코드 방향성을 아시는 분은 댓글로 남겨주시면 감사하겠습니다!
[SWEA] 1859. 백만 장자 프로젝트 (D2^) - Python (0) | 2022.11.24 |
---|---|
[Baekjoon] 백준 1541번 문제 풀이 (Python) (1) | 2022.05.20 |
[SWEA] 10580 문제 풀이 (Python) (0) | 2022.04.20 |
[Programmers] 49993번 문제 풀이 (Python) (0) | 2022.04.17 |
[SWEA] 1240 문제 풀이 (Python) (0) | 2022.04.16 |