boj 2156

less than 1 minute read

“https://www.acmicpc.net/problem/2156”

from sys import stdin
from collections import deque

def wine(numlist, i):    
    if i < 2:
        ans[i] = sum(numlist)
    elif i == 2:
        templist = numlist.copy()
        temp1 = max(templist)
        templist.remove(temp1)
        temp2 = max(templist)
        ans[i] = temp1 + temp2
    else:
        ch1 = numlist[i] + ans[i-2]
        ch2 = numlist[i] + numlist[i-1] + ans[i-3]
        ch3 = ans[i-1]
        ans[i] = max(ch1, ch2, ch3)

if __name__ == "__main__":
    count = int(stdin.readline())
    numlist = deque()
    ans = [0] * count
    for i in range(count):
        numlist.append(int(stdin.readline()))
        wine(numlist, i)
    print(ans[count-1])

notion
  • 전후관계를 잘 살펴보는 것이 중요

Categories:

Updated: