문제
- SWEA-1952. [모의 SW 역량테스트] 수영장
풀이
인덱스가 2인 경우 idx-3
이 음수가 되므로 memo를 하나 늘려주었다.
또는 for
인덱스를 1부터 시작하게 하고 조건문 if idx>2
로 바꾸어 주어도 된다.
def find_price(plans):
memo = [0]*(len(plans)+1)
for idx, val in enumerate(plans):
memo[idx] = memo[idx-1] + min(prices[1], prices[0]*val)
if idx > 1:
memo[idx] = min(memo[idx], memo[idx-3] +prices[2])
return memo[-2]
T = int(input())
for test_case in range(1, T + 1):
prices = list(map(int, input().split()))
plans = list(map(int, input().split()))
answer = min(prices[3], find_price(plans))
print('#%d %d' % (test_case, answer))