[Python]백준 1256번: 포도주 시식

Jonie Kwon·2022년 5월 26일
0
post-custom-banner


문제 링크: https://www.acmicpc.net/problem/2156

풀이

첫 번째, 마지막 포도주를 안 마실 수 있음
케이스에 포도주가 하나만 있는 경우가 있는 듯 하다. 런타임 에러 발생
if n > 1: dp[1] = wine[0] + wine[1] 부분 추가해서 해결

반례모음

https://raejoonee.tistory.com/15

코드

import sys

input = sys.stdin.readline
n = int(input())
wine = []
for _ in range(n):
    wine.append(int(input()))
wine = wine

dp = [0] * n
dp[0] = wine[0]
if n > 1:
    dp[1] = wine[0] + wine[1]
for i in range(2, n):
    dp[i] = max(wine[i] + dp[i - 2], dp[i - 1], dp[i - 3] + wine[i] + wine[i - 1])
print(dp[n - 1])
profile
메모하는 습관
post-custom-banner

0개의 댓글