백준 2579 계단오르기 파이썬

최대 1 분 소요

백준 2579 계단오르기 풀이

접근방식

  1. dp 리스트에 1번 계단과 2번 계단을 저장한다.
  2. max 함수를 이용해서 자기 자신과 2계단 아래의 값, 그리고 자기 자신과 바로 이전 계단의 값을
    비교한다.
  3. 모든 계산 뒤에 steps[i]를 더해준다.
# 입력받기
import sys
input = lambda: sys.stdin.readline().rstrip()

n = int(input())

steps = [0] + list(map(int, (input() for _ in  range(n))))

dp = [0 for _ in range(301)]

dp[1] = steps[1]
dp[2] = dp[1] + steps[2]

for i in range(3, n+1):
    dp[i] = max(dp[i-2], dp[i-3] + steps[i-1]) + steps[i]

print(dp[n])

해당 문제는 실버3레벨에 해당하므로 어렵지 않게 풀 수 있는 문제였습니다.

DP 알고리즘을 처음 접하기에 적합한 문제라고 생각합니다.

알고리즘도 모든 것과 마찬가지로 꾸준한 연습과 이해를 바탕으로 실력이 향상합니다. Just do it & Keep steady

댓글남기기