문제
풀이
- 동전의 금액들이 오름차순으로 주어지며 주어진 목표 금액인 k원을 만드는데 필요한 동전 개수의 최솟값을 출력하면 되는 문제이다.
- 동전 개수의 최솟값을 찾으면 되는 문제이므로 동전 금액이 큰 상황부터 살펴보면 최솟값을 얻을 수 있다.
- 동전 금액 내림차순 정렬하자
코드
import sys
input = sys.stdin.readline
def solve(coins: list, target: int) -> int:
coins = list(reversed(coins))
cnt = 0
for coin in coins:
if coin <= target:
cnt += target // coin
target %= coin
return cnt
if __name__ == '__main__':
n, k = map(int, input().split())
ai = [int(input()) for _ in range(n)]
print(solve(ai, k))
결과
출처 & 깃허브
boj 11047
github