728x90
https://www.acmicpc.net/problem/2579
나의 풀이
- 2칸씩 이어서 갈 수 있고, 3칸은 안됨
- 1칸만 띄어서 갈 수 있고 2칸은 안됨
- 마지막 계단을 무조건 밟아야 함
최대로 나오는 점수를 return 하면 되는 문제이다.
dp에는 각 step에서 선택할 수 있는 가장 큰 수가 저장된다.
import sys
input = sys.stdin.readline
n = int(input())
s=[int(input()) for _ in range(n)]
print(s)
dp = [0]*n
if len(s)<=2:
print(sum(s))
else:
dp[0]=s[0]
dp[1]=s[0]+s[1]
for i in range(2,n):
dp[i]=max(dp[i-3]+s[i-1]+s[i], dp[i-2]+s[i])
print(dp[-1])
728x90
'Coding Test > Baekjoon' 카테고리의 다른 글
[Python] 파이썬 백준(9935) 문자열 폭발 (0) | 2023.07.14 |
---|---|
[Python] 파이썬 백준(11047) 동전 0 (0) | 2023.07.14 |
[Python] 파이썬 백준(1912) 연속합 (0) | 2023.05.31 |
[Python] 파이썬 백준 (9461) 파도반 수열 (0) | 2023.05.31 |
[Python] 파이썬 백준(1904) 01타일 (0) | 2023.05.31 |