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