File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change
1
+ // ์ต๋ ๊ธ์ก์ ...
2
+ // nums[0]์ ํฐ๋ ๊ฒฝ์ฐ: rob(nums[2] ~ nums[last - 1]) + nums[0]
3
+ // nums[0]์ ์ ํฐ๋ ๊ฒฝ์ฐ: rob(nums[1] ~ nums[last])
4
+ // ๋ฐ๋ผ์ nums[0]์ ํธ์ง ๋ง์ง ์ฌ๋ถ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋์ด ๊ณ์ฐ
5
+
6
+ /**
7
+ * @param {number[] } nums
8
+ * @return {number }
9
+ */
10
+ const rob = function ( nums ) {
11
+ if ( nums . length === 1 ) return nums [ 0 ] ;
12
+
13
+ const dp1 = [ nums [ 0 ] ] ; // ์ฒซ ์ง์ ํฐ๋ ๊ฒฝ์ฐ ์ต๋ ๊ธ์ก
14
+ const dp2 = [ 0 ] ; // ์ฒซ ์ง์ ์ ํฐ๋ ๊ฒฝ์ฐ ์ต๋ ๊ธ์ก
15
+
16
+ for ( let i = 1 ; i < nums . length ; i ++ ) {
17
+ dp1 [ i ] = Math . max ( dp1 [ i - 1 ] , ( dp1 [ i - 2 ] || 0 ) + nums [ i ] ) ;
18
+ dp2 [ i ] = Math . max ( dp2 [ i - 1 ] , ( dp2 [ i - 2 ] || 0 ) + nums [ i ] ) ;
19
+ }
20
+
21
+ return Math . max ( dp1 [ dp1 . length - 2 ] , dp2 [ dp2 . length - 1 ] ) ;
22
+ }
23
+
24
+ // ์๊ฐ๋ณต์ก๋: O(n)
25
+ // ๊ณต๊ฐ๋ณต์ก๋: O(n)
You canโt perform that action at this time.
0 commit comments