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+ class Solution :
2+ def rob (self , nums : list [int ]) -> int :
3+ """
4+ μ°μλ μ§μ νμΉμ§ μκ³ μ΅λν λ§μ λμ νμΉλ ν¨μ
5+
6+ λ°©λ²
7+ 1. DP λ°©μμΌλ‘, κ° μ§μ νμΉ λμ μ΅λ λμ μμ μ
λ°μ΄νΈ νλ λ°©λ².
8+ dp[0], dp[1]λ₯Ό μ΄κΈ°ν νκ³ , dp[2]λ dp[0]+nums[2]λ‘ κ΅¬μ±
9+ μ΄ν dp[i]λ dp[i-2]μ dp[i-3] μ€ ν° κ°μ nums[i]λ₯Ό λν κ°μΌλ‘ ꡬμ±
10+ max(dp)λ‘ μ΅λκ° μ°ΎκΈ°
11+ 2. 1λ² λ°©λ²μμ μ νμμ μ’ λ κ°λ¨νκ², dp[i]λ dp[i-1]κ³Ό dp[i-2]+nums[i] μ€ ν° κ°μΌλ‘ ꡬμ±νλ λ°©λ².
12+ dp[i-1]μ iλ²μ§Έ μ§μ νμΉμ§ μμμ λμ μ΅λκ°, dp[i-2]+nums[i]λ iλ²μ§Έ μ§μ νμ³€μ λμ μ΅λκ°μ΄λ―λ‘, λ μ€ ν° κ°μ dp[i]λ‘ μ
λ°μ΄νΈ νλ λ°©μ.
13+ dp[-1]μ΄ μ΅λκ°μ΄λ―λ‘, max(dp) λμ dp[-1]λ‘ μ΅λκ° μ°ΎκΈ°
14+ 3. 2λ² λ°©λ²μμ dp 리μ€νΈ λμ , λ κ°μ λ³μλ‘ μ΄μ λ μ§μ νμ³€μ λμ μ΅λκ°μ μ
λ°μ΄νΈ νλ λ°©λ².
15+
16+ Args:
17+ nums (list[int]): κ° μ§μ μλ λμ μμ΄ λ΄κΈ΄ 리μ€νΈ
18+
19+ Returns:
20+ int: μ΅λλ‘ νμΉ μ μλ λμ μ
21+ """
22+ if len (nums ) <= 2 :
23+ return max (nums )
24+ prev1 , prev2 = 0 , 0
25+ for num in nums :
26+ temp = prev1
27+ prev1 = max (prev1 , prev2 + num )
28+ prev2 = temp
29+ return prev1
You canβt perform that action at this time.
0 commit comments