File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ /**
2
+ * ๋ฌธ์ ์ ํ
3
+ * - DP (ํผ๋ณด๋์น)
4
+ *
5
+ * ๋ฌธ์ ์ค๋ช
6
+ * - ๊ณ๋จ์ ์ฌ๋ผ๊ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๊ธฐ
7
+ *
8
+ * ์์ด๋์ด
9
+ * 1) ํผ๋ณด๋์น ์์ด ํ์ฉ
10
+ * - climbStairs(n) = climbStairs(n-1) + climbStairs(n-2)
11
+ */
12
+ function climbStairsBottomUp ( n : number ) : number {
13
+ function fibonacci ( n : number , memo = new Map < number , number > ( ) ) {
14
+ if ( n === 1 ) return 1 ;
15
+ if ( n === 2 ) return 2 ;
16
+
17
+ if ( memo . has ( n ) ) return memo . get ( n ) ;
18
+ const result = fibonacci ( n - 1 , memo ) + fibonacci ( n - 2 , memo ) ;
19
+ memo . set ( n , result ) ;
20
+ return result ;
21
+ }
22
+ return fibonacci ( n ) ;
23
+ }
24
+
25
+ function climbStairsTopDown ( n : number ) : number {
26
+ const dp = new Array ( n + 1 ) . fill ( 0 ) ;
27
+ dp [ 1 ] = 1 ;
28
+ dp [ 2 ] = 2 ;
29
+
30
+ for ( let i = 3 ; i <= n ; i ++ ) {
31
+ dp [ i ] = dp [ i - 1 ] + dp [ i - 2 ] ;
32
+ }
33
+ return dp [ n ] ;
34
+ }
You canโt perform that action at this time.
0 commit comments