File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @description
3+ * λμ νλ‘κ·Έλλ°(Dynamic Programming, DP)μ μ¬μ©νμ¬ κ³λ¨μ μ€λ₯΄λ λ°©λ² μλ₯Ό κ³μ°ν©λλ€.
4+ * - μ νμ: dp[i] = dp[i-1] + dp[i-2]
5+ * - dp[i-1]: μ΄μ κ³λ¨μμ 1λ¨κ³ μ¬λΌμ¨ κ²½μ°
6+ * - dp[i-2]: λ κ³λ¨ μλμμ 2λ¨κ³ μ¬λΌμ¨ κ²½μ°
7+ * - κ³΅κ° μ΅μ νλ₯Ό ν΅ν΄ λ°°μ΄ λμ λ λ³μ(prev1, prev2)λ₯Ό μ¬μ©νμ¬ λ©λͺ¨λ¦¬ μ¬μ©λμ μ€μ
λλ€.
8+ * @param {number }n step μ
9+ * @returns {number } κ³λ¨ λλ¬ λ°©λ² μ
10+ */
11+ function climbStairs ( n : number ) : number {
12+ if ( n <= 2 ) return n ;
13+
14+ let prev2 = 1 ; // dp[i-2]
15+ let prev1 = 2 ; // dp[i-1]
16+
17+ for ( let i = 3 ; i <= n ; i ++ ) {
18+ const cur = prev1 + prev2 ; // dp[i] κ³μ°
19+ prev2 = prev1 ; // dp[i-2] κ°±μ
20+ prev1 = cur ; // dp[i-1] κ°±μ
21+ }
22+
23+ return prev1 ; // dp[n] λ°ν
24+ } ;
25+
You canβt perform that action at this time.
0 commit comments