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보다 변수 가지고 노는게 좀 더 나을듯?