File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change 1+ from typing import List
2+
3+
4+ class Solution :
5+ def rob (self , nums : List [int ]) -> int :
6+ """
7+ - Idea: i๋ฒ์งธ ์ง๊น์ง์ ์ต๋ ๊ธ์ก์ ๋ ๊ฐ์ง ์ค ๋ ํฐ ๊ฐ์ผ๋ก ๊ฒฐ์ ๋๋ค.
8+ 1. (i-2๋ฒ์งธ ์ง๊น์ง์ ์ต๋ ๊ธ์ก) + i๋ฒ์งธ ์ง์ ๊ธ์ก
9+ 2. (i-1๋ฒ์งธ ์ง๊น์ง์ ์ต๋ ๊ธ์ก)
10+ ์ด๋ฅผ ์ด์ฉํด ๋์ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๊ฐ ์ง๊น์ง์ ์ต๋ ๊ธ์ก์ ๊ณ์ฐํ๋ค.
11+
12+ ๋ค๋ง, ๋งจ ๋ง์ง๋ง ์ง๊ณผ ์ฒซ๋ฒ์งธ ์ง์ด ์ด์ด์ง ์ฌ์ดํด(cycle) ํํ์ด๊ธฐ ๋๋ฌธ์
13+ ์ฒซ๋ฒ์งธ ์ง๊ณผ ๋ง์ง๋ง ์ง์ด ๋์์ ๋๋๋ง์ ์๋ ์๋ค.
14+ ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋๋ ์ ๊ฐ๊ฐ ๊ณ์ฐํ๊ณ , ๋ ์ค ๋ ํฐ ๊ฐ์ ์ ํํ๋ค.
15+ 1. ์ฒซ๋ฒ์งธ ์ง์ ํฌํจํ๊ณ ๋ง์ง๋ง ์ง์ ํฌํจํ์ง ์๋ ๊ฒฝ์ฐ
16+ 2. ์ฒซ๋ฒ์งธ ์ง์ ํฌํจํ์ง ์๊ณ ๋ง์ง๋ง ์ง์ ํฌํจํ๋ ๊ฒฝ์ฐ
17+ - Time Complexity: O(n). n์ ์ง์ ๊ฐ์.
18+ ๋ชจ๋ ์ง์ ํ๋ฒ์ฉ ์ํํด์ผ ํ๋ฏ๋ก O(n) ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
19+ - Space Complexity: O(n). n์ ์ง์ ๊ฐ์.
20+ ๊ฐ ์ง๊น์ง์ ์ต๋ ๊ธ์ก์ ์ ์ฅํ๊ธฐ ์ํด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฏ๋ก O(n) ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค.
21+ """
22+ if len (nums ) == 1 :
23+ return nums [0 ]
24+
25+ dp1 = [0 ] + [0 ] * len (nums )
26+ dp1 [1 ] = nums [0 ]
27+
28+ dp2 = [0 ] + [0 ] * len (nums )
29+ dp2 [1 ] = 0
30+
31+ for i in range (2 , len (nums ) + 1 ):
32+ dp1 [i ] = max (dp1 [i - 1 ], dp1 [i - 2 ] + nums [i - 1 ])
33+ dp2 [i ] = max (dp2 [i - 1 ], dp2 [i - 2 ] + nums [i - 1 ])
34+
35+ return max (dp1 [- 2 ], dp2 [- 1 ])
You canโt perform that action at this time.
0 commit comments