반응형
이 문제는 p[n]과 i가 1부터 n의 절반까지인 p[n-i] + p[i] 중 값이 최대인걸 p[n]에 저장하는 방식을 이용했다.
즉 p[4]의 경우
p[3]+p[1] or p[2] + p[2] or p[4] 중 최대인 값이 p에 저장되는 dp 방법을 이용했다.
import sys
input = sys.stdin.readline
n = int(input())
ary = list(map(int,input().split()))
p=[0]*(n+1)
p[1]=ary[0]
for num in range(2,n+1):
temp=[ary[num-1]]
for idx in range(1,int(n/2)+1):
temp.append(p[num-idx]+p[idx])
p[num]=max(temp)
print(p[n])
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
2193번 파이썬 (0) | 2022.03.31 |
---|---|
15990번 파이썬 (0) | 2022.03.31 |
14503번 파이썬 (0) | 2022.03.29 |
2573번 파이썬 (0) | 2022.03.28 |
2468번 파이썬 (0) | 2022.03.27 |