동전 종류를 배열로 입력을 받는다.
오름차순으로 정렬되어있기 때문에 배열의 가장 끝인 배열[-1]의 값이 가장 큰 값이다.
동전을 최소한으로 사용하여 K를 만들어야하기 때문에 K에서 큰 값을 하나씩 빼주면서 카운팅해준다.
배열에 들어있는 수 중 가장 큰 수가 K보다 크면 배열.pop() 으로 삭제해준다.
K값이 0이 될때까지 가능한한 큰 값의 동전으로 빼준다.
n, k = map(int, input().split())
coin = []
c=0
for _ in range(n):
coin.append(int(input()))
while k>0:
if coin[-1] <= k:
r = k//coin[-1]
k = k-coin[-1]*r
c += r
coin.pop()
else:
coin.pop()
print(c)
https://www.acmicpc.net/problem/11047
'백준' 카테고리의 다른 글
30 - 백준 10610번 (0) | 2022.06.26 |
---|---|
로프 - 백준 2217번 (0) | 2022.06.25 |
잃어버린 괄호 - 백준 1541 (0) | 2022.06.22 |
카드 정렬하기 - 백준 1715번 (0) | 2022.06.21 |
단지번호붙이기 - 백준 2667번 (0) | 2022.06.18 |
댓글