백준 알고리즘 - 11047. 동전 0
2024. 3. 5. 23:46ㆍ코딩 테스트/백준
https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
전체 코드
def solution(amount, coins):
if len(coins) == 0:
return 0
count = 0
coin = coins.pop()
while amount > 0:
if amount < coin:
if not coins:
break
coin = coins.pop()
else:
add_count, amount = divmod(amount, coin)
count += add_count
# --- 시간 초과 ----
# amount -= coin
# count += 1
return count
# --- submit ----
start_line = input()
line_count, amount = map(int, start_line.split(' '))
coins = [int(input()) for _ in range(line_count)]
print(solution(amount, coins))
여담
동전 반환 개수 계산을 한번씩 계산하면 time-out이 발생한다. divmod를 통해 몫, 나머지를 한번에 계산하여 최적화를 하여 pass 하였다.
'코딩 테스트 > 백준' 카테고리의 다른 글
백준 알고리즘 - 2563. 색종이 (0) | 2024.03.06 |
---|---|
백준 알고리즘 1931. 회의실 배정 (0) | 2024.03.05 |
백준 알고리즘 - 11399. ATM (0) | 2024.03.05 |
백준 알고리즘 - 2231. 분해합 (0) | 2024.03.05 |
백준 알고리즘 - 2503. 숫자야구 (0) | 2024.03.05 |