문제 출처
1. 동전의 가치를 오름차순으로 입력받는다.
2. 주어진 합을 만들기 위해 필요한 최소한의 동전의 개수를 만드려면 가치가 큰 동전부터 더하면 된다.
3. 오름 차순으로 이루어진 배열을 역순으로 정렬해준다.
4. 맨 처음 더해야 하는 수가 주어진 합보다 크지 않는 것만 더해준다.
5. 그 후 주어진 합을 만들기 위해 가장큰 값들만 더해준다.
6. 사용된 동전의 갯수를 출력한다.
N,K = map(int,input().split())
valueList =[]
for i in range(N) :
valueList.append(int(input()))
valueList.reverse()
result =0
count =0
index = 0
while result!=K :
if valueList[index]>K :
index+=1
continue
else :
while (K-result)>=valueList[index] :
result += valueList[index]
count +=1
index+=1
print(count)
'알고리즘' 카테고리의 다른 글
[백준 알고리즘]1339 번 (Python) (0) | 2020.11.21 |
---|---|
[백준 알고리즘]2217 번 (Python) (0) | 2020.11.17 |
코드업[Code Up] 1999 : 성실한 개미 (파이썬) (0) | 2020.11.12 |
[백준 알고리즘]10950번/char타입 데이터 int타입으로 변환 (0) | 2020.10.28 |
[백준 알고리즘]15552번 빠른 A+B /BufferedReader와 BufferedWriter의 사용 (0) | 2020.10.28 |