코드업 3301 문제 풀이 python
🐒 거스름돈
어떤 가게의 욕심쟁이 점원은 거스름돈을 나눠줄때 거스름돈의 개수를 적게해서 주고자 한다.
거스름돈을 입력 받아 점원이 줄 수 있는 최소 거스름돈의 개수를 출력하시오.
예를 들어 54520원인 경우,
거스름돈으로 50000원권 1장, 1000원권 4장, 500원 1개, 10원 2개 해서 총 8개이다.
(※ 현재 우리나라가 사용하고 있는 화폐를 사용한다. 10원 50원 100원 500원 1,000원 5,000원 10,000원 50,000원)
거스름돈 n이 입력된다. ( n은10이상의 int 범위 )
최소 거스름돈의 개수를 출력한다.
입력 예시
54520
출력 예시
8
✍ 나의 풀이
a = int(input())
count = 0
for i in [50000, 10000, 5000, 1000, 500, 100, 50, 10]:
if a // i != 0 :
count += a // i
a = a % i
print(count)
워낙 유명한 문제이기도 하고 비슷한 문제를 이전에 풀어봤어서 쉽게 풀 수 있었다. (7분 걸렸다😽)
아이디어 : 가장 큰 단위의 거스름돈부터 거슬러 주면 거스름돈 갯수를 최소로 줄 수 있다.
a = int(input()) # 변수 a에 거슬러 줘야 할 돈을 입력받아 저장한다.
count = 0 # 거스름돈 갯수를 저장할 count 변수를 초기화 한다.
# 거스름돈 단위를 큰 수 부터 i에 불러온다
for i in [50000, 10000, 5000, 1000, 500, 100, 50, 10]:
if a // i != 0 : # 거슬러줄 돈이 i로 나뉘면 i로 거슬러 줄 수 있다.
count += a // i # 거스름돈 갯수에 i로 거슬러 준 갯수를 기존 count변수에 더해준다.
a = a % i # i로 거슬러 주고난 나머지를 변수 a에 저장한다.
print(count) # 거스름돈 갯수를 출력한다.
Author And Source
이 문제에 관하여(코드업 3301 문제 풀이 python), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mauserne/코드업-3301-문제-풀이-python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)