문제
- k원을 만드는데 필요한 동전 개수의 최솟값을 출력하라
문제 풀이
- 입력받은 코인을 배열에 저장하고 내림차순으로 정렬한다.
- k원보다 코인이 큰 것은 지나가고 k원보다 작아지면 k원을 coin으로 나눌 수 있는 지 확인한다
- 나눌 수 있으면 몫이 coin의 개수이고
- 나머지가 남으면 나머지를 다음으로 작은 코인으로 나눈 것을 더하면 된다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import sys
kind_of_coin, money = map(int,sys.stdin.readline().split())
coins = []
for _ in range(kind_of_coin):
coin = int(sys.stdin.readline())
coins.append(coin)
coins.reverse()
count = 0
for i in range(kind_of_coin):
if coins[i]<= money:
count += money//coins[i]
money = money%coins[i]
print(count)
|
cs |
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 2606 바이러스 파이썬 풀이(DFS와 BFS) (0) | 2021.06.24 |
---|---|
[백준] 11399 ATM 파이썬 풀이 (그리디) (0) | 2021.06.24 |
[백준] 1541 잃어버린 괄호 파이썬 풀이 (그리디) (0) | 2021.06.24 |
[백준] 1002 피보나치 함수 파이썬 풀이 (동적계획법) (0) | 2021.06.24 |
[백준] 2231 분해합 파이썬 풀이 (브루트포스) (0) | 2021.06.24 |