문제 링크 : https://leetcode.com/problems/house-robber/submissions/
초기에 문제를 잘못 이해하고 푼 코드
(그냥 한 집 건나 하나 더해서 풀면 되는줄)
class Solution:
def rob(self, nums: List[int]) -> int:
dp1 = []
dp2= []
for i in range(len(nums)):
if i % 2==0:
dp1.append(nums[i])
else:
dp2.append(nums[i])
return max(sum(dp1), sum(dp2))
결국 실패한 테.케
Input
[2,1,1,2]
Output
3
Expected
4
일단 두 수를 연속으로 더할 수 없기 떄문에
nums에 숫자들이 있으면
둘이 붙어있는 어떤 숫자를 대충 [dp1,dp2,n,...]이라고 치고
가장 최대한을 구한다...
class Solution:
def rob(self, nums: List[int]) -> int:
dp1, dp2 = 0, 0
for i in nums:
temp = max(i+dp1, dp2)
dp1 = dp2
dp2 = temp
return dp2
22.09.15
다시 복습