1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
n=int(input())
stairs=[int(input()) for i in range(n)]
dp=[0]*n
for i in range(n):
if i==0:
dp[0]=stairs[0]
if i==1:
dp[1]=max(dp[0]+stairs[1], stairs[1])
if i==2:
dp[2]=stairs[2]+max(stairs[0], stairs[1])
if i>2:
dp[i]=stairs[i]+max(dp[i-2], dp[i-3]+stairs[i-1])
print(dp[n-1])
|
cs |
'알고리즘 공부' 카테고리의 다른 글
[BOJ] 단어수학(1339) 문제 풀이 | Python3 (0) | 2021.05.09 |
---|---|
[BOJ] 잃어버린 괄호(1541) 문제 풀이 | Python3 (0) | 2021.05.09 |
[Programmers] 타겟 넘버 문제 풀이 | Python3 (0) | 2021.05.03 |
[BOJ] 스타트링크(5014) 문제 풀기 | Python3 (0) | 2021.04.30 |
[BOJ] 숨바꼭질(1697) 문제 풀기 | Python3 (0) | 2021.04.30 |