본문 바로가기
알고리즘 문제

백준 11047 파이썬

by hyunjing0 2021. 3. 25.
n, k = map(int, input().split())
coins = []; coin_count = 0

for _ in range(n):
    coins.append(int(input()))
coins.reverse()

for i, coin in enumerate(coins,1):
    if k == 0:
        break
    if k // coin >= 1:
        coin_count += k // coin
        k -= coin * (k//coin)

print(coin_count)

동전개수의 최솟값을 구해야 하는데 문제 조건에 A(i)는 A(i-1)의 배수라고 적혀있다.

따라서 큰단위의 동전을 가능한 많이 사용하면 된다.

( 배수가 아닐경우 무작정 큰단위의 동전을 사용하면 안된다. )

'알고리즘 문제' 카테고리의 다른 글

백준 1946 파이썬  (0) 2021.10.05
백준 1931  (0) 2021.03.24
백준 16208  (0) 2021.03.22
백준 16435  (0) 2021.03.22
백준 11399  (0) 2021.03.15