[백준/파이썬] 2156번 포도주 시식 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 2156번 포도주 시식
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
연속으로 3잔을 마실 수 없다는 조건에서 마실 수 있는 포도주의 최대 양을 구하는 문제입니다.
코드
import sys
n = int(sys.stdin.readline())
wine = [0]+[int(sys.stdin.readline()) for _ in range(n)]
d = [0, wine[1], wine[1]+wine[2] if n > 1 else 0]
for i in range(3, n+1):
d.append(max(d[i-3]+wine[i-1]+wine[i], d[i-2]+wine[i], d[i-1]))
print(d[n])
설명
i번째 잔 기준으로
(i-1, i)를 연속으로 마시는 경우,
i만 마시는 경우,
i를 안 마시는 경우를 비교해 최댓값을 누적합니다.
댓글남기기