[백준] 동전 0 11047번 - Python

GoshK·2022년 2월 4일
0

[백준] Python

목록 보기
6/27
post-thumbnail

[백준] 동전 0 11047번

나의 풀이

N, K = map(int, input().split())
coins = []
answer = 0

for i in range(N):
    coins.append(int(input()))

coins = sorted(coins, reverse=True)

for i in range(len(coins)):
    if coins[i] > K:
        continue
    answer += K // coins[i]
    K %= coins[i]
    if K < 1:
        break

print(answer)
  • N, K의 값을 받아준다.
  • 동전 종류를 담을 coins 리스트를 만들어주고 N만큼 동전의 종류를 리스트에 넣어준다.
  • 가장 큰 동전의 종류부터 차례대로 내림차순 하기 위해서 coins 리스트를 정렬해준다.
  • 반복을 돌면서 동전의 종류가 K 보다 크다면 continue 를 통해 로직을 통과시키고, 아니라면 해당 동전으로 낼수있는 최대 개수를 answer 에 더해주고, K의 값을 해당 금액만큼 감소시킨다. 1원이 최소이므로 K 가 1 보다 작아져 계산할 수 없게되면 break 를 통해서 반복을 탈출해준다.

0개의 댓글