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