티스토리 뷰

n = int(input())
array = []
for i in range(n):
    array.append(int(input()))
d = [0] * len(array)
d[0] = array[0]
if n == 2:
    d[1] = array[0] + array[1]
elif n > 2:
    d[1] = array[0] + array[1]
    d[2] = max(d[1], array[1] + array[2], array[0] + array[2])
    for i in range(3, n):
        d[i] = max(array[i] + d[i-2], d[i-1], array[i] + array[i-1] + d[i-3])

print(max(d))

그냥 전형적인 dp 문제였는데 왜이렇게 어렵게 느껴졌을까...

흠.... 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함