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