동전 0(백준 11047번)
💡 **Check Point !
( 해당사항 ✓체크 )
막힘 없이 수월하게 풀린 문제인가? ✓
1시간이내로 풀렸던 문제인가?
1시간 이상 or 며칠을 두고 풀어봤더니 풀린 문제인가?
시간을 써도 도무지 풀 수 없는 문제인가?
솔루션을 찾아봤는가?
난이도 체감
최상
상
중
하✓
이해도
완벽히 이해✓
다소 헷갈리는 부분들이 있음
이해 못함
문제
준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.
동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.
나의 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import sys
input=sys.stdin.readline
N,K=map(int,input().strip().split())
coins=[]
for _ in range(N):
coin=int(input().strip())
coins.append(coin)
total_num=0
for i in range(len(coins)-1,-1,-1):
n=K//coins[i]
if n>0:
K-=(n*coins[i])
total_num+=n
print(total_num)
- 단위가 큰 동전 순서대로 돈을 지불하는 방식으로 코드를 구성하였다.
This post is licensed under CC BY 4.0 by the author.