- 문제
준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다.
동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오.
조건
1. 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000)
2. 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
3. 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다.
- 코드
# 입력부
n,k=map(int,input().split());
coin_units=[];
# 처리부
result=0;
for i in range(n):
coin_units.append(int(input())); #동전 개수만큼 루프 돌리면서 종류 종보 수집.
coin_units.sort(reverse=True); # 내림차순 정렬한다.
for coin in coin_units:
result+=k//coin; #입력한 코인을 단위가 높은 코인부터 낮은 코인순으로 나눈다.
k%=coin;
# 출력부
print(result);
- 여담
코인을 하나씩 입력받고, 리스트에 저장한 후 내림차순 정렬한다. 전형적인 동전교환 문제이다.
TMI)
티스토리가 글 쓸때의 화면과 게시물로 올려졌을 때의 화면이 다르다.
나는 여태껏 코드가 적당한 크기로 올라가고 있다고 생각했는데, 라인 넘버도 없고 크기도 너무 작았다.
그래서 한 시간 가량 손을 봤다. 나름 만족스럽다 ㅎㅎ
| 코드가 이상하거나, 이해가 안 되는 부분이 있다면 언제든 댓글 남겨주세요! :) |
'Programming > Python' 카테고리의 다른 글
| [백준] 5585번 : 거스름돈 (Python / 파이썬) (0) | 2023.01.01 |
|---|---|
| [백준] 1026번 : 보물 (Python / 파이썬) (0) | 2023.01.01 |
| [백준] 11399번 : ATM (Python / 파이썬) (0) | 2022.12.30 |
| [백준] 2839번 : 설탕 배달 (Python / 파이썬) (0) | 2022.12.30 |
| [백준] 2557번 : Hello World (Python / 파이썬) (0) | 2022.12.28 |