"""
동전 0
종류 : N가지
각 종류의 동전 : 무한대
총 동전 가치의 합 : K
동전 개수를 최소로 써야 함.
가장 큰 금액의 동전부터 나눔.
"""
N, K = map(int, input().split(' '))
A_list = []
for _ in range(N):
A_list.append(int(input()))
# 가치 내림차순으로 동전 정렬
A_list.sort(reverse=True)
total_coin_count = 0
# 가치가 큰 동전부터 검사
for Ai in A_list:
# 동전의 가치 Ai가 남은 총 동전 가치 K보다 크면 계산 불가
# 계산할 수 있는 동전들 중 가장 큰 가치를 가진 동전으로 계산
if Ai > K:
continue
# 총 동전의 개수는 남은 총 가치를 현재 검사하는 동전의 가치로 나눈 몫의 정수값
total_coin_count += int(K / Ai)
# 남은 총 가치는 현재 검사하고 있는 동전의 가치로 나눈 나머지 값
K %= Ai
print(total_coin_count)
https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
'Problem-solving > 백준' 카테고리의 다른 글
백준 - 그룹 단어 체커(1316번) (Python3) (0) | 2020.05.21 |
---|---|
백준 - ATM(11399번) (Python3) (0) | 2020.05.21 |
백준 - RGB거리(1149번) (Python3) (0) | 2020.05.21 |
백준 - 섬의 개수(4963번) (Python3) (0) | 2020.05.15 |
백준 - 카드 구매하기(11052번) (Python3) (0) | 2020.05.14 |
댓글