198. House Robber

Doyeon Kim·2022년 7월 29일

코딩테스트 공부

목록 보기
94/171

문제 링크 : 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
다시 복습

profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글