알고리즘

70. Climbing Stairs

유병각 2022. 4. 30. 17:07

풀이_#1

재귀를 활용한 풀이

=> 메모이제이션을 활용해서 빠름

class Solution:
    def climbStairs(self, n: int) -> int:
        dp = [0] * (n+1)

        dp[1] = 1
        if (n >= 2):
            dp[2] = 2

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

        return dp[n]

풀이_#2

재귀를 활용한 풀이 - 숏코딩, 간략

=> 시간초과걸림

def climbStairs1(self, n):
    if n == 1:
        return 1
    if n == 2:
        return 2
    return self.climbStairs(n-1)+self.climbStairs(n-2)