반응형
leetcode.com/problems/house-robber/
책의 도움을 약간 받아 완성하였다..
class Solution:
def rob(self, nums: List[int]) -> int:
if len(nums)<=2:
return max(nums)
dp = {}
dp[0] = nums[0]
dp[1] = max(nums[0],nums[1])
for i in range(2, len(nums)):
dp[i] = max(dp[i-1], dp[i-2]+nums[i])
return dp[len(nums)-1]
한달 후 혼자 다시 푼 코드
class Solution:
def rob(self, nums: List[int]) -> int:
if len(nums)<3:
return max(nums)
x = nums[0]
y = max(nums[0],nums[1])
for i in range(2, len(nums)):
x, y = y, max(x+nums[i],y)
return y
댓글