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 |