백준 2156번 포도주 시식
문제
문제 출처 : https://www.acmicpc.net/problem/2156
풀이 과정
n번째 잔을 마시는 경우
n 이전 잔을 안마시는 경우
wine[n] + wine[n-1] -> dp[n] = wine[n] + dp[n-2]
n 이전 잔을 마시는 경우
wine[n] + wine[n-2] -> dp[n] = wine[n] + wine[n-1] + dp[n-3]
최대값 비교
dp[n] = max(dp[n-2] + wine[n], dp[n-3] + wine[n-1] + wine[n])
n번째 잔을 안마시는 경우
이전까지 최대값인 dp[n-1] 저장
dp[n] = dp[n-1]
이전 값과 비교
dp[n] = max(dp[n-1], dp[n])
예시
댓글남기기