(Python, Java) 리트코드 - House Robber

[문제 링크]

Python 풀이

from typing import List


class Solution:
    def rob(self, nums: List[int]) -> int:

        length = len(nums)
        if length == 1:
            return nums[0]

        nums[1] = max(nums[0], nums[1])
        if length == 2:
            return nums[1]

        for idx in range(2, length):
            nums[idx] = max(nums[idx - 1], nums[idx - 2] + nums[idx])
            
        return nums[length - 1]

Java 풀이

class Solution {
    public int rob(int[] nums) {
        int length = nums.length;

        if (length == 1)
            return nums[0];

        nums[1] = Math.max(nums[0], nums[1]);
        if (length == 2)
            return nums[1];

        for (int idx = 2; idx < length; idx++) {
            nums[idx] = Math.max(nums[idx - 1], nums[idx - 2] + nums[idx]);
        }
        
        return nums[length - 1];
    }
}

© 2021. By Backtony