Skip to content

Commit e9f2a5a

Browse files
committed
[BOJ] 2156 포도주 시식 (S1)
1 parent 31a478c commit e9f2a5a

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

심수연/4주차/260121.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# https://www.acmicpc.net/problem/2156
2+
3+
import sys
4+
input = sys.stdin.readline
5+
6+
n = int(input())
7+
wine = [int(input()) for _ in range(n)]
8+
9+
dp = [0] * n
10+
11+
# dp[i] = i번째 잔까지 고려했을 때 마실 수 있는 최대 포도주 양
12+
13+
dp[0] = wine[0] # 첫 잔은 마시는 게 최댓값
14+
15+
if n > 1:
16+
dp[1] = wine[0] + wine[1] # 두 잔 가능
17+
18+
if n > 2:
19+
dp[2] = max(
20+
wine[0] + wine[1], # 2 빼고 먹기
21+
wine[0] + wine[2], # 1 빼고 먹기
22+
wine[1] + wine[2], # 0 빼고 먹기
23+
)
24+
25+
for i in range(3, n):
26+
dp[i] = max(
27+
dp[i - 1], # i번째 잔 안 마시기
28+
dp[i - 2] + wine[i], # i-2 (O), i-1 (X), i (O)
29+
dp[i - 3] + wine[i - 1] + wine[i] # i-3 (O), i-2 (X), i-1 (O), i (O)
30+
)
31+
32+
print(dp[n - 1]) # 배열이 0부터 시작하니까 n - 1

0 commit comments

Comments
 (0)