benlee73 2021. 8. 16. 09:43

https://leetcode.com/problems/house-robber/

 

House Robber - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

Solution

class Solution:
    def rob(self, nums):
        if len(nums) < 2:
            return nums[0]
        dp = []
        dp.append(nums[0])
        dp.append(max(nums[0], nums[1]))
        
        for i in range(2, len(nums)):
            dp.append(max(dp[i-2]+nums[i], dp[i-1]))
        
        return dp[-1]
  • 기본적인 dp 문제이다.
  • 인접한 2개의 집을 선택하지 말아야 하므로 dp[i] = max(d[i-2]+nums[i], dp[i-1]) 를 사용할 수 있다.