File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ function rob ( nums : number [ ] ) : number {
2+ if ( nums . length < 3 ) {
3+ return Math . max ( ...nums ) ;
4+ }
5+
6+ // House Robber II์ ํต์ฌ: ์ํ์ผ๋ก ์ฐ๊ฒฐ๋ ์ง๋ค์, ์ฐ๊ฒฐ๋์ง ์์ ๋ ๋ถ๋ถ์ผ๋ก ๋๋๋ค
7+ let first = nums . slice ( 0 , nums . length - 1 ) ;
8+ let second = nums . slice ( 1 , nums . length ) ;
9+
10+ // House Robber ์ ํ์์ ์ฒซ ๋ฒ์งธ ํญ: ์ฒซ ๋ฒ์งธ ์ง๊ณผ ๋ ๋ฒ์งธ ์ง์, ๋ ์ค ๋ ํฐ ๊ฐ์ผ๋ก ๋ฏธ๋ฆฌ ๋๊ธฐํํด ๋๋ค
11+ first [ 1 ] = Math . max ( first [ 0 ] , first [ 1 ] ) ;
12+ second [ 1 ] = Math . max ( second [ 0 ] , second [ 1 ] ) ;
13+
14+ // ๋ฐฐ์ด ๊ธธ์ด ์กฐ๊ฑด์ ๋ง์กฑํ ๊ฒฝ์ฐ, House Robber 1๋ฒ ๋ฌธ์ ์ฒ๋ผ ์ ํ์์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฐฐ์ด์ ๊ฐ์ ์
๋ฐ์ดํธ
15+ if ( nums . length > 2 ) {
16+ for ( let i = 2 ; i < nums . length - 1 ; i ++ ) {
17+ first [ i ] = Math . max ( first [ i ] + first [ i - 2 ] , first [ i - 1 ] )
18+ second [ i ] = Math . max ( second [ i ] + second [ i - 2 ] , second [ i - 1 ] )
19+ }
20+ }
21+
22+ // ๋ ๊ฒฐ๊ณผ ์ค ๋ ํฐ ๊ฒ์ ๋ฐํ
23+ let firstResult = Math . max ( ...first ) ;
24+ let secondResult = Math . max ( ...second ) ;
25+
26+ return Math . max ( firstResult , secondResult ) ;
27+ } ;
You canโt perform that action at this time.
0 commit comments