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