LeetCode 70: Climbing Stairs

이원희·2021년 3월 8일
0

📝 PS

목록 보기
64/65
post-thumbnail

문제 풀이

DP로 풀 수 있는 문제이다.

func climbStairs(_ n: Int) -> Int {
    var array: [Int] = []
    array.append(1)
    array.append(2)
    while array.count < n {
        let new = array[array.endIndex - 1] + array[array.endIndex - 2]
        array.append(new)
    }
    return array[n - 1]
}

처음에는 DP 정석처럼 풀었다.

func climbStairs(_ n: Int) -> Int {
    if n <= 2 {
        return n
    }
    var first = 1
    var last = 2
    var sum = 0
    for stair in 3...n {
        sum = first + last
        first = last
        last = sum
    }
    return sum
}

근데 사실 1칸, 2칸만 계산하면 되서 Array보다 변수 가지고 노는게 좀 더 나을듯?

LeetCode

0개의 댓글