21561 [파이썬] 백준 2156번: 포도주 시식 N = int(input()) wine = [0] maxi = [0]*(N+1) for i in range(1, N+1): wine.append(int(input())) if i < 3: maxi[i] = sum(wine) else: target = [] target.append(maxi[i-3]+wine[i-1]+wine[i]) target.append(maxi[i-2]+wine[i]) target.append(maxi[i-1]) maxi[i] = max(target) print(maxi[-1]) 다이나믹 프로그래밍 문제다. 처음에 DFS로 풀었는데 시간초과가 떠서 다시 풀었다. 포도주가 1잔 또는 2잔이 있을 때에는 그냥 모두 다 마시면 된다. 하지만 3잔째 부터는 선택을 해야 한다. 선택에는 3가지.. 2020. 6. 9. 이전 1 다음