File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * [Problem]: [70] Climbing Stairs
3
+ * (https://leetcode.com/problems/climbing-stairs/description/)
4
+ */
5
+
6
+ function climbStairs ( n : number ) : number {
7
+ // 시간복잡도 O(n)
8
+ // 공간복잡도 O(n)
9
+ function dpFunc ( n : number ) : number {
10
+ if ( n <= 0 ) return 0 ;
11
+
12
+ let dpArr : number [ ] = new Array ( n ) ;
13
+ dpArr [ 0 ] = 1 ;
14
+ dpArr [ 1 ] = 2 ;
15
+
16
+ for ( let i = 2 ; i < n ; i ++ ) {
17
+ dpArr [ i ] = dpArr [ i - 1 ] + dpArr [ i - 2 ] ;
18
+ }
19
+
20
+ return dpArr [ n - 1 ] ;
21
+ }
22
+
23
+ // 시간복잡도 O(n)
24
+ // 공간복잡도 O(1)
25
+ function dpOptimizedFunc ( n : number ) : number {
26
+ if ( n <= 0 ) return 0 ;
27
+ if ( n === 1 ) return 1 ;
28
+ if ( n === 2 ) return 2 ;
29
+
30
+ let prev1 = 1 ;
31
+ let prev2 = 2 ;
32
+
33
+ for ( let i = 3 ; i < n + 1 ; i ++ ) {
34
+ let currentValue = prev1 + prev2 ;
35
+
36
+ prev1 = prev2 ;
37
+ prev2 = currentValue ;
38
+ }
39
+
40
+ return prev2 ;
41
+ }
42
+
43
+ return dpOptimizedFunc ( n ) ;
44
+ }
You can’t perform that action at this time.
0 commit comments