- 문제 : 동전 0
- 난이도 : 실버 3
- 언어 : Python
- 문제 링크 : https://www.acmicpc.net/problem/11047
N, K = map(int, input().split())
coin = []
for _ in range(N):
coin.append(int(input()))
cnt = 0
num = K
for i in range(N-1, -1, -1):
if num == 0:
break
if num - coin[i] >= 0:
cnt += (num // coin[i])
num = num % coin[i]
print(cnt)
그리디 문제.
역순으로 동전을 빼나가면서 현재 값을 갱신하며 동전의 개수 또한 세줌.
자칫하면 시간초과가 날 수 있으므로 효율적인 코드가 중요한 것 같다.
'BOJ' 카테고리의 다른 글
백준 1302. 베스트셀러 [Python] (0) | 2022.06.02 |
---|---|
백준 1449. 수리공 항승 [Python] (0) | 2022.05.30 |
백준 5014. 스타트링크 [Python] (0) | 2022.05.05 |
백준 2164. 카드2 [Python] (0) | 2022.04.19 |
백준 2609. 최대공약수와 최소공배수 [Python] (0) | 2022.04.19 |