dlgprbs9441   6년 전

2156번 문제에서



sgchoi5   6년 전

질문하시기 전에 질문 검색 해보시면 볼 수 있는 내용이 많이 있습니다.

2 차원으로 안 하셔도 되고, dp[n] 의 의미를 n 까지 가장 많이 먹은 경우라고 보면 

3 가지 중에 하나를 골라야 합니다.

n 번째를 안 먹는 경우: dp[n] = dp[n-1]

n 번째를 먹고 (n-1 번째 안 먹음) 가능한 이전의 최대치를 이용하는 경우: dp[n] = wine[i] + dp[n-2]

n 번째를 먹고 (n-1 번째 먹음) 가능한 이전의 최대치를 이용하는 경우: dp[n] = wine[i] + wine[i-1] + dp[n-3]

초기화를 적절히 해주고 i = 3 부터 시작해주면 됩니다..

댓글을 작성하려면 로그인해야 합니다.