이코테 : 이것이 취업을 위한 코딩테스트다 책의 예제문제 풀이
문제
10의 배수로 주어지는 거스름돈을 돌려주려고 할 때, 최소 몇 개의 동전으로 거슬러 줄 수 있는가?
백준의 유사 문제인 11047 동전 포스팅
해설
가장 큰 동전으로 거슬러 줄 수 있는 금액부터 제거해줘야 최소 개수가 보장된다.
딕셔너리를 활용해봤다. 엊그제 해본 dic.items()의 sum도 써봤다.
코드
coins = [500, 100, 50, 10]
coins.sort(reverse=True)
n = int(input()) # 거스름돈
# 줄 동전의 최소 개수
cnt = 0
dic = {}
for c in coins:
dic[c] = n//c
n -= dic[c]*c
# print(n)
print(sum(v for i,v in dic.items()))
마지막줄의 v for i, v - 를 sum(i/*v for i, v in dic.items()) 가 되면 처음 입력되는 값이 출력된다.
'⚡️algorithm' 카테고리의 다른 글
[문자열] 프로그래머스 lv1. 다트게임 (정규표현식, 10치환, isdecimal, 숫자찾기) (0) | 2022.05.26 |
---|---|
[그리디] 이코테. 큰 수의 법칙 (0) | 2022.05.25 |
[완전탐색] 프로그래머스 lv2. 소수찾기 (feat. 순열 조합, extend, permutations) (0) | 2022.05.25 |
[정렬/파이썬] 프로그래머스 lv2. 가장 큰 수 (feat. sort 메서드) (0) | 2022.05.24 |
[정렬] 프로그래머스 lv2. h-index (0) | 2022.05.24 |