https://www.acmicpc.net/problem/11047
걸리는 시간은 똑같지만 코드 길이를 줄여봤다
일단 거스름돈 배열을 만들고,
가장 뒤부터 배열을 순회하면서 거스름돈이 나누어지는 만큼 cnt에 더한다.
<처음 풀이>
N, K = map(int, input().split())
money = []
for i in range(N):
temp = int(input())
money.append(temp)
# print(money)
cnt = 0
while K>0:
for i in range(N-1, -1, -1):
if K//money[i] == 0:
continue
elif K//money[i] > 0:
cnt += K//money[i]
K = K % money[i]
print(cnt)
<최종 코드>
N, K = map(int, input().split())
money = []
for i in range(N):
temp = int(input())
money.append(temp)
cnt = 0
while K:
for i in range(N-1, -1, -1):
if K//money[i] > 0:
cnt += K//money[i]
K = K % money[i]
print(cnt)
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] SW 문제해결 기본 5일차 - Magnetic (0) | 2022.12.07 |
---|---|
[파이썬] 백준 15649 N과 M (1) (0) | 2022.12.06 |
[파이썬] 백준 1436 영화감독 숌 (부르트포스) (0) | 2022.11.30 |
[파이썬] SWEA SW 문제해결 응용 7일차 - 행렬찾기 (0) | 2022.11.14 |
재귀 심화: 조합과 중복조합 (0) | 2022.10.31 |