algorithm/baekjoon
[백준] 11047번 동전 0(파이썬)
support_u
2023. 3. 26. 14:25
문제
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
코드
N, K = map(int, input().split())
coin = [int(input()) for _ in range(N)]
cnt = 0
for i in range(N - 1, -1, -1):
if K // coin[i] > 0:
cnt += K // coin[i]
K = K % coin[i]
if K == 0:
break
print(cnt)
해설
가장 큰 수부터 하나하나 넣는 방식인 그리디방법으로 풀어보았다.
다 돌기전에 k == 0인 것을 생각해서 0이면 break로 끝내주었다.
레인지 범위는 거꾸로 돌기때문에 0까지 돌려면 -1인 것을 유의해야할 것같다.