You are climbing a staircase. It takes n steps to reach the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
주어진 조건에서 n 계단을 올리가기 위한 모든 방법을 계산하는 문제이다. 전형적인 DP 알고리즘 적용 문제로 인덱스 0, 1, 2을 제외하고서는 dp[n] =dp[n-1] + dp[n-2] 식을 적용하면 쉽게 풀린다.
class Solution:
def climbStairs(self, n: int) -> int:
dp = [0, 1, 2]
for i in range(3,n+1):
dp.append(dp[i-1] + dp[i-2])
return dp[n]