File tree 1 file changed +23
-8
lines changed
1 file changed +23
-8
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * Source: https://leetcode.com/problems/climbing-stairs/description/
3
+ * μμ : λμ νλ‘κ·Έλλ°(DP) μ κ·Όλ² - νΌλ³΄λμΉ μμ΄κ³Ό μ μ¬
4
+ * νμ΄ μκ°: 25λΆ
5
+ * μκ°λ³΅μ‘λ: O(n) - λ§μ§λ§ κ²°κ³Όκ°μ μ»κΈ°μν΄ nλ² λ°λ³΅
6
+ * 곡κ°λ³΅μ‘λ: O(1) - μμ 곡κ°λ§ μ¬μ©
7
+ */
1
8
function climbStairs ( n : number ) : number {
2
- let result = 0 ;
3
- let step1 = 1 ;
4
- let step2 = 0 ;
9
+ // μ£μ§ μΌμ΄μ€λ₯Ό μ¬μ μ μ²λ¦¬(κ°μ§μΉκΈ°)
10
+ if ( n <= 0 ) return 0 ;
11
+ if ( n === 1 ) return 1 ;
5
12
6
- for ( let i = 0 ; i < n ; i ++ ) {
7
- result = step1 + step2 ;
8
- step2 = step1 ;
9
- step1 = result ;
13
+ // νΌλ³΄λμΉ μμ΄ κ³μ°μ μν λ³μ
14
+ let current = 1 ; // n=1μΌ λ λ°©λ²μ μ (첫 λ²μ§Έ νΌλ³΄λμΉ μ)
15
+ let prev = 1 ; // n=0μΌ λ λ°©λ²μ μ (μ΄κΈ°κ°)
16
+ let temp ; // κ΅νμ μν μμ λ³μ
17
+
18
+ // iλ 2λΆν° μμνμ¬ nκΉμ§ λ°λ³΅
19
+ for ( let i = 2 ; i <= n ; i ++ ) {
20
+ // νμ¬ κ³λ¨μ λλ¬νλ λ°©λ²μ μ = μ΄μ λ κ³λ¨μ λλ¬νλ λ°©λ²μ μμ ν©
21
+ temp = current ;
22
+ current = current + prev ;
23
+ prev = temp ;
10
24
}
11
- return result ;
25
+
26
+ return current ;
12
27
}
You canβt perform that action at this time.
0 commit comments