Coding - Algo/python
[백준] 2579번:계단 오르기 (python 파이썬)
jainn
2021. 3. 25. 22:48
728x90
문제
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
풀이 및 소스코드
편의상 1번째 계단에 대한 점수는 stiars[1]에 있는 것처럼 설명했지만,
코드 짤때는 stairs, dp 모두 0~n-1 인덱스로 초기화했다!
import sys
input = sys.stdin.readline
n = int(input())
stairs = []
dp = []
for i in range(n):
stairs.append(int(input()))
if n==1:
print(stairs[0])
exit()
elif n == 2:
print(max(stairs[0]+stairs[1], stairs[1]))
exit()
dp.append(stairs[0])
dp.append(max(dp[0]+stairs[1], stairs[1]))
dp.append(max(dp[0]+stairs[2], stairs[1]+stairs[2]))
for i in range(3, n):
dp.append(max(dp[i-2]+stairs[i], dp[i-3]+stairs[i-1]+stairs[i]))
print(dp[-1])
반응형