File tree Expand file tree Collapse file tree 1 file changed +22
-4
lines changed Expand file tree Collapse file tree 1 file changed +22
-4
lines changed Original file line number Diff line number Diff line change 10
10
# **dp[i] = max(dp[i-1], dp[i-2] + nums[i])**
11
11
# nums ๊ธธ์ด๊ฐ 2์ธ ๊ฒฝ์ฐ range(2, 2)๋ for๋ฌธ ์ ๋๋ค.
12
12
13
+ from typing import List
14
+
13
15
class Solution :
14
16
def rob (self , nums : List [int ]) -> int :
15
- if not nums : return 0
16
- if len ( nums ) == 1 : return nums [0 ]
17
-
17
+ if len ( nums ) == 1 :
18
+ return nums [0 ]
19
+
18
20
dp = [0 ] * len (nums )
19
21
dp [0 ] = nums [0 ]
20
22
dp [1 ] = max (nums [0 ], nums [1 ])
21
23
22
24
for i in range (2 , len (nums )):
23
- dp [i ] = max (dp [i - 1 ], nums [ i ] + dp [ i - 2 ])
25
+ dp [i ] = max (dp [i - 1 ], dp [ i - 2 ] + nums [ i ])
24
26
25
27
return dp [- 1 ]
26
28
29
+ """
30
+ ๊ณต๊ฐ ์ต์ ํ ํ์ด
31
+
32
+ prev2: i-2๊น์ง์ ์ต๋๊ฐ + ํ์ฌ ๋
33
+ prev1: i๋ฒ์งธ ์ง ์ ํธ๊ณ , ์ด์ ๊น์ง์ ์ต๋๊ฐ ์ ์ง
34
+
35
+ TC: O(n)
36
+ SC: O(1)
37
+ """
38
+ class Solution :
39
+ def rob (self , nums : List [int ]) -> int :
40
+ prev2 , prev1 = 0 , 0
41
+ for num in nums :
42
+ prev2 , prev1 = prev1 , max (prev1 , prev2 + num )
43
+ return prev1
44
+
27
45
28
46
# TS ์ฝ๋
29
47
# function rob(nums: number[]): number {
You canโt perform that action at this time.
0 commit comments