백준 2720 세탁소 사장 동혁
📜 문제
미국으로 유학간 동혁이는 세탁소를 운영하고 있다. 동혁이는 최근에 아르바이트로 고등학생 리암을 채용했다.
동혁이는 리암에게 실망했다.
리암은 거스름돈을 주는 것을 자꾸 실수한다.
심지어 $0.5달러를 줘야하는 경우에 거스름돈으로 $5달러를 주는것이다!
어쩔수 없이 뛰어난 코딩 실력을 발휘해 리암을 도와주는 프로그램을 작성하려고 하지만, 디아블로를 하느라 코딩할 시간이 없어서 이 문제를 읽고 있는 여러분이 대신 해주어야 한다.
거스름돈의 액수가 주어지면 리암이 줘야할 쿼터(Quarter, $0.25)의 개수, 다임(Dime, $0.10)의 개수, 니켈(Nickel, $0.05)의 개수, 페니(Penny, $0.01)의 개수를 구하는 프로그램을 작성하시오. 거스름돈은 항상 $5.00 이하이고, 손님이 받는 동전의 개수를 최소로 하려고 한다. 예를 들어, $1.24를 거슬러 주어야 한다면, 손님은 4쿼터, 2다임, 0니켈, 4페니를 받게 된다.
🚩 입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 거스름돈 C를 나타내는 정수 하나로 이루어져 있다. C의 단위는 센트이다. (1달러 = 100센트) (1<=C<=500)
🌞 출력
각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다.
👵풀이
전형적인 잔돈을 최소한으로 건네주는 그리디 알고리즘 문제이다. 그리디 알고리즘 블로그에 아직 안올린 것 까지 포함해서 약 25개를 풀었다. 어제 오늘 하루에 1,2 문제씩 틀리지않고 쉽게 답을 도출해내는 그리디 알고리즘 문제들을 만나고 있어서 다행이다. 가끔 정답 코드를 찾아서 이해하기에도 오래 걸리는 문제들이 있지만 이런 문제들을 만나면 기분이 좋다 ㅠㅠ
동전이 25,10,5,1 로 25만 배수가 아니어서 x%25%10으로 표현하였다. 이 외에는 일반적인 잔돈 주는 문제와 풀이가 같다. 거슬러 주어야 하는 x 에 최대 잔돈 종류를 나누어 몫을 구하고, 나머지에 10을 나누어 또 몫을 구하기 반복..
🥕 정답 코드
n = int(input())
for i in range(n):
x = int(input())
print(x//25, (x%25)//10, (x%25%10)//5, (x%5)//1)
'Python > Python 코딩테스트' 카테고리의 다른 글
[그리디 알고리즘15] 백준 16435 스네이크버드 파이썬 (0) | 2021.07.24 |
---|---|
[그리디 알고리즘14] 백준 11000 강의실 배정 문제 풀이 파이썬 (0) | 2021.07.20 |
[그리디 알고리즘12] 백준 10775번 공항 파이썬 (0) | 2021.07.19 |
[그리디 알고리즘11] 백준 1700번 멀티탭 스케줄링 파이썬 (0) | 2021.07.18 |
[그리디 알고리즘10] 백준 2847 게임을 만든 동준이 파이썬 (0) | 2021.07.17 |
댓글