꺽일때마다(극점) 사거나 팔아주면 된다.
import sys
input = sys.stdin.readline
N, W = map(int, input().split( ))
costs = [int(input()) for __ in range(N)]
coin = 0
for i in range(1, N):
if not coin:
if costs[i - 1] < costs[i]:
coin = W // costs[i - 1]
W -= coin * costs[i - 1]
else:
if costs[i - 1] > costs[i]:
W += coin * costs[i - 1]
coin = 0
if coin: W += coin * costs[N - 1]
print(W)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 17135 캐슬디펜스 (0) | 2021.10.06 |
---|---|
[백준][Python] 3273 두 수의 합 (0) | 2021.10.04 |
[백준][Python] 1660 캡틴이다솜 (0) | 2021.10.04 |
[백준][Python] 1516 게임개발 (0) | 2021.10.04 |
[백준][Python] 2665 미로만들기 (0) | 2021.10.03 |