문제 : https://www.acmicpc.net/problem/11047
예제입력:
10 4200
1
5
10
50
100
500
1000
5000
10000
50000
예제출력:
6
import sys
input = sys.stdin.readline
N, K = map(int, input().split())
coins = [int(input()) for _ in range(N)]
coins.reverse()
re = 0
for coin in coins :
re += K // coin
K = K % coin
print(re)
- 오름차순으로 주어지는 동전을 리스트에 담고 reverse함수를 이용해 역순으로 정렬시킨다
- 정렬된 리스트내부를 순회하며 입력받은 돈을 순회한 값으로 나눈 몫을 result 변수에 더한다
-> 나눠지지 않으면 0이 더해진다
- 그러고 K는 순회한 값의 나머지로 대입시킨다
-> 입력받은 돈의 값보다 작아지면 그제서야 나눠지고, 나눠진 값을 K에 재대입
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[c++] 백준2232 벌집 c++ (0) | 2023.11.02 |
---|---|
[C++] 백준 14567 선수과목 (설명 작성중~) (0) | 2023.11.02 |
[C++] 백준 2056 작업 (0) | 2023.11.02 |
[Python] 백준 2559 수열 - 투포인터 알고리즘 (0) | 2023.10.24 |
[Python] 백준 2178 미로 탐색-dfs알고리즘-최단경로 (0) | 2023.10.18 |
[Python] 백준 15650, 15649 -백트래킹 알고리즘 (0) | 2023.10.18 |