728x90
반응형
기본적인 다이나믹 프로그래밍 문제이다. li와 dp를 미리 선언하고 풀어야 런타임 에러가 안 나온다.
마지막 계단의 전 계단을 밟은 경우와, 밟지 않은 경우 2가지를 고려해서 풀면 된다.
N = int(input())
li = [0]*301
dp = [0]*301
for i in range(N):
li[i] = int(input())
dp[0] = li[0]
dp[1] = li[0]+li[1]
dp[2] = max(li[0]+li[2], li[1]+li[2])
for i in range(3, N):
dp[i] = max(dp[i-3]+li[i-1]+li[i], dp[i-2]+li[i])
print(dp[N-1])
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 9019번 DSLR(python) (0) | 2021.03.18 |
---|---|
백준 알고리즘 5525번 IOIOI(python) (0) | 2021.03.18 |
백준 알고리즘 1620번 나는야 포켓몬 마스터 이다솜(python) (0) | 2021.03.18 |
백준 알고리즘 11652번 카드(python) (0) | 2021.03.18 |
백준 알고리즘 9184번 신나는 함수 실행(python) (0) | 2021.03.17 |