File tree Expand file tree Collapse file tree 2 files changed +50
-34
lines changed Expand file tree Collapse file tree 2 files changed +50
-34
lines changed Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ /**
2
+ *
3
+ * ์ ๊ทผ ๋ฐฉ๋ฒ :
4
+ * - ์ต์ ์ ํด๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ dp ์ฌ์ฉ
5
+ * - ํ์ฌ ์ธ๋ฑ์ค๊น์ง ํ์น ์ ์๋ ๊ฐ์ฅ ํฐ ๊ฐ์ dp์ ์ ์ฅ
6
+ *
7
+ * ์๊ฐ๋ณต์ก๋ : O(n)
8
+ * - nums ๋ฐฐ์ด์ 1ํ๋ง ์ํํ๋๊น O(n)
9
+ *
10
+ * ๊ณต๊ฐ๋ณต์ก๋ : O(n)
11
+ * - nums ๋ฐฐ์ด ํฌ๊ธฐ๋งํผ dp ๋ฐฐ์ด์ ์ ์ฅ
12
+ */
13
+ function rob ( nums : number [ ] ) : number {
14
+ const dp : number [ ] = [ ] ;
15
+
16
+ dp [ 0 ] = nums [ 0 ] ;
17
+ dp [ 1 ] = Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
18
+
19
+ for ( let i = 2 ; i < nums . length ; i ++ ) {
20
+ dp [ i ] = Math . max ( dp [ i - 1 ] , dp [ i - 2 ] + nums [ i ] ) ;
21
+ }
22
+
23
+ return dp [ nums . length - 1 ] ;
24
+ }
25
+
26
+ /**
27
+ *
28
+ * ์ ๊ทผ ๋ฐฉ๋ฒ : ๊ณต๊ฐ ๋ณต์ก๋ O(1)๋ก ์ต์ ํ
29
+ * - ์ด์ ๋ ๊ฐ๋ง ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก ๊ฐ์
30
+ *
31
+ * ์๊ฐ๋ณต์ก๋ : O(n)
32
+ *
33
+ * ๊ณต๊ฐ๋ณต์ก๋ : O(1)
34
+ * - ๊ณ ์ ๋ ๋ณ์๋ง ์ฌ์ฉ
35
+ */
36
+ function rob ( nums : number [ ] ) : number {
37
+ if ( nums . length === 1 ) return nums [ 0 ] ;
38
+ if ( nums . length === 2 ) return Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
39
+
40
+ let prev2 = nums [ 0 ] ;
41
+ let prev1 = Math . max ( nums [ 0 ] , nums [ 1 ] ) ;
42
+
43
+ for ( let i = 2 ; i < nums . length ; i ++ ) {
44
+ const current = Math . max ( prev1 , prev2 + nums [ i ] ) ;
45
+ prev2 = prev1 ;
46
+ prev1 = current ;
47
+ }
48
+
49
+ return prev1 ;
50
+ }
You canโt perform that action at this time.
0 commit comments