프린세스 다이어리

[LeetCode] Climbing Stairs - 자바스크립트 풀이 본문

자료구조, 알고리즘

[LeetCode] Climbing Stairs - 자바스크립트 풀이

개발공주 2021. 12. 6. 21:48
728x90

 

1. 접근 방법

(1) 힌트에 이전 피보나치 문제처럼 풀라고 해서 재귀로 풀었더니 시간 초과가 났다(???). 그래서 DP로 풀었다.

 

(2) 베이스 케이스를 써 준다.

    stairs[1] = 1;
    stairs[2] = 2;

 

(3) for문을 돌면서 점화식을 이용해 연산해준다.

    for (let i = 3; i <= n; i++) {
        stairs[i] = stairs[i - 2] + stairs[i - 1];
    }

 

2. 전체 해답

/**
 * @param {number} n
 * @return {number}
 */
var climbStairs = function(n) {
    let stairs = new Array(n).fill(0);
    stairs[1] = 1;
    stairs[2] = 2;
    
    for (let i = 3; i <= n; i++) {
        stairs[i] = stairs[i - 2] + stairs[i - 1];
    }
    
    return stairs[n];
};
728x90
Comments