적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

Algorithm/LeetCode

[Swift 알고리즘] LeetCode 70. Climbing Stairs

hongssup_ 2023. 4. 3. 13:55
반응형

Math, Dynamic Programming, Memoization | Easy

LeetCode 70. Climbing Stairs

내 답안. 배열에 저장

class Solution {
    func climbStairs(_ n: Int) -> Int {
        if n == 1 || n == 2 { return n }
        
        var result = [1,2]
        for i in 2..<n {
            result.append(result[i-2] + result[i-1])
        }
        return result[n-1]
    }
}

다른 답안. 

변수 두 개 그냥 계속 업데이트 해주는 방법

class Solution {
    func climbStairs(_ n: Int) -> Int {
        var (first, second) = (1, 1)
        
        for _ in 1..<n {
            let temp = first + second
            first = second
            second = temp
        }
        return second
    }
}

 

** 딱히 차이는 없겠지만 뭐가 더 효율적일까. 배열에 저장, 변수로 저장 메모리 상에 차이 있나? 

728x90
반응형