λ¬Έμ
νμ΄ κ³Όμ
μ νμ μΈ λμ κ³νλ²
λ¬Έμ μ
λλ€.
νμ¬ κ³λ¨μμ μ¬λΌκ° μ μλ μΉΈμ μκ° 1~2 μ΄λ―λ‘dp(n) = nλ²μ§Έ κ³λ¨μμ λ§μ§λ§ κ³λ¨μ λλ¬νλ κ²½μ°μ μ
λΌκ³ μ μνλ€λ©΄
λ€μκ³Ό κ°μ μ νμμ μ»μ μ μμ΅λλ€.
dp(n) = dp(n-1) + dp(n-2)
μ΄λ νΌλ³΄λμΉ μμ΄κ³Ό κ°μ ννλ₯Ό κ°μ§κ³ μλ κ²μ μ μ μλ€μ.
μ΄λ² λ¬Έμ μμλ λ³΄ν΅ Javascriptλ‘ λ©λͺ¨μ΄μ μ΄μ
μ ꡬνν λ μ£Όλ‘ μ¬μ©νλ ν΄λ‘μ ν¨ν΄μ΄ μλλΌ
λ€λ₯Έ μΈμ΄μμ μ¬μ©νλ μ μ μ€μ½ν λ³μλ₯Ό 미리 ν λΉλ°μ μ¬μ©νμμ΅λλ€.
μ΄ν λ¬Έμ λΆν°λ Javascript μ μ΅μν΄μ§κΈ° μν΄ λ©λͺ¨μ΄μ μ΄μ
μ ꡬνν λ ν΄λ‘μ λ₯Ό νμ©ν μμ μ
λλ€.
μ½λ
/**
* @param {number} n
* @return {number}
*/
let memo = new Array(46).fill(-1);
var climbStairs = function (n) {
if (n === 0) {
return 1;
} else if (n < 0) {
return 0;
}
if (memo[n] !== -1) {
return memo[n];
}
memo[n] = climbStairs(n - 1) + climbStairs(n - 2);
return memo[n];
};
'π algorithm > leetcode' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
LeetCode 49 - Group Anagrams (Medium) (0) | 2021.03.02 |
---|---|
LeetCode 200 - Number of Islands (Medium) (0) | 2021.03.02 |
LeetCode 64 - Minimum Path Sum (Medium) (0) | 2021.03.02 |
LeetCode 55 - Jump Game (Medium) (0) | 2021.03.02 |
LeetCode 1 - Two Sum (Easy) (0) | 2021.03.02 |
π¬ λκΈ