한번에 1칸 또는 2칸씩 계단을 오를 수 있는데, n단계까지 오르기 위해서는 총 몇가지 방법이 있는가?
뭐 이런 문제다.
n = 1 경우 방법 1개
n = 2 경우 방법 2개
n = 3 경우 방법 3개
n = 4 경우 방법 5개
즉, 중단 단계 값들을 이용해서 n단계의 값을 구할 수 있다.
점화식 f(n) = f(n-1) + f(n-2)
function climbStairs(n) {
if (n <= 2) return n;
// arr[0] = 1, arr[1] = 2
const arr = [1, 2];
for (let i = 2; i < n; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n - 1];
}