Algorithm/Baekjoon

[Python] 11047. 동전 0

느낌표 공장장 2021. 9. 28. 16:34
n, k = map(int, input().split())    # 동전 종류 수 n, 만들 가치의 합 k
coins = [int(input()) for _ in range(n)]
cnt = 0  # 총 사용한 동전 개수

for i in range(n-1, -1, -1):    # 큰수부터 시작
    if k < coins[i]:    # k보다 동전이 크면 pass
        continue

    # 동전이 k보다 작은 경우
    temp = k // coins[i]    # i번째의 동전으로 만들 수 있는 최대 수
    k -= coins[i] * temp    # i번째의 동전으로 만들 수 있는 가치만큼 빼준다.

    cnt += temp # 방금 사용한 동전 수를 cnt에 합쳐준다.
    if not k:   # k가 0이 되면 중단
        break

print(cnt)

 

큰 동전부터 사용하는 것이 포인트 ! 

'Algorithm > Baekjoon' 카테고리의 다른 글

[Python] 2293. 동전 1  (0) 2021.10.02
[Python] 9495. 스티커  (0) 2021.09.30
[Python] 1463. 1로 만들기  (0) 2021.09.28
[Python] 11052. 카드 구매하기  (0) 2021.09.26
[Python] 1912. 연속합  (0) 2021.09.26