티스토리 뷰
n = int(input())
k = list(map(int, input().split()))
d = [0]*100 # 식량창고 개수
d[0] = k[0]
d[1] = max(k[0], k[1])
# (i-1)번째 창고를 털면 i를 털 수 없음 = d(i-1)
# (i-2)번째 창고를 털면 i를 털 수 있음 = d(i-2)+k[i]
# 둘 중 더 큰 곳을 찾으면 됨
for i in range(2, n):
d[i] = max(d[i-1], d[i-2]+k[i])
# print(f'd[{i}] = max({d[i-1]}, {d[i-2]+k[i]})')
print(d[n-1])
'Python > 이코테' 카테고리의 다른 글
8-5. 효율적인 화폐 구성 (0) | 2022.07.17 |
---|---|
8-4. 바닥 공사 (0) | 2022.07.15 |
8-1. 다이나믹 프로그래밍 (0) | 2022.07.13 |
8-2. 1로 만들기 (0) | 2022.07.10 |
7-1. 범위를 반 씩 줄여가는 탐색 (0) | 2022.07.10 |