File tree 1 file changed +27
-0
lines changed 1 file changed +27
-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
+ - Time Complexity: O(n). n์ ์ง์ ๊ฐ์.
13
+ ๋ชจ๋ ์ง์ ํ๋ฒ์ฉ ์ํํด์ผ ํ๋ฏ๋ก O(n) ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
14
+ - Space Complexity: O(n). n์ ์ง์ ๊ฐ์.
15
+ ๊ฐ ์ง๊น์ง์ ์ต๋ ๊ธ์ก์ ์ ์ฅํ๊ธฐ ์ํด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฏ๋ก O(n) ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ๋ค.
16
+ """
17
+ if len (nums ) == 1 :
18
+ return nums [0 ]
19
+
20
+ dp = [0 ] * len (nums )
21
+ dp [0 ] = nums [0 ]
22
+ dp [1 ] = max (nums [0 ], nums [1 ])
23
+
24
+ for i in range (2 , len (nums )):
25
+ dp [i ] = max (dp [i - 1 ], dp [i - 2 ] + nums [i ])
26
+
27
+ return dp [- 1 ]
You canโt perform that action at this time.
0 commit comments