dp 활용
dp[i]
= index가 i일때 최대값 저장dp[i]
는dp[i-1]
에서 안마신 경우,dp[i-2]
에서 바로 전잔은 안마시고 이번잔은 마신 경우,dp[i-3]
에서 연달아 두잔 마신경우 중 최대값
import sys
def total():
temp = []
for _ in range(n):
volume = int(sys.stdin.readline())
temp.append(volume)
return temp
def solve():
dp = [0]
dp.append(grape[0])
if n >= 2:
dp.append(grape[0]+grape[1])
for i in range(3,n+1):
dp.append(max(dp[i-1],dp[i-2]+grape[i-1],dp[i-3]+grape[i-1]+grape[i-2]))
return dp[-1]
n = int(sys.stdin.readline())
grape = total()
ans=solve()
print(ans)
'알고리즘 문제 풀이 > Python' 카테고리의 다른 글
python 1759 암호 만들기 (0) | 2022.07.01 |
---|---|
python 백준 2263 트리의 순회 (0) | 2022.06.29 |
python 백준 11404 플로이드 (0) | 2022.06.27 |
python 백준 1167 트리의 지름 (0) | 2022.06.25 |
python 백준 1967 트리의 지름 (0) | 2022.06.24 |