https://www.acmicpc.net/problem/11047
n, k=map(int, input().split())
coins=[]
for i in range(n):
coins.append(int(input()))
coins.sort(reverse=True)
#큰 수부터 거슬러 주면 주는 동전의 최솟값을 구할 수 있음
count=0#거슬러 주는 코인의 개수
for coin in coins:
count+=k//coin #0인경우
k-=coin*(k//coin)
if k==0:
break
print(count)
n, k=map(int, input().split())
coins=[]
for i in range(n):
coins.append(int(input()))
필요한 파라미터 입력받기
n(int) : 동전 종류의 개수
k(int) : 만들고자하는 금액
coins.sort(reverse=True)
큰 수부터 거슬러 주면 주는 동전의 최솟값을 빠르게 구할 수 있다.
count=0
for coin in coins:
count+=k//coin #0인경우
k-=coin*(k//coin)
if k==0:
break
count(int) : 거슬러 주는 동전의 수
이코테- 그리디 알고리즘