본문 바로가기
Web development/Algorithm

[LeetCode] 198. House Robber (javascript)

by 자몬다 2021. 8. 12.

도둑이 도둑질을 하는데

이웃한 두 집을 연속으로 털면 경찰에 잡힌다.

 

연속으로 털지 않으면서 가장 많은 돈을 털 수 있도록 하는 문제이다.

 

/**
 * @param {number[]} nums
 * @return {number}
 */
var rob = function(nums) {
    let prev = 0;
    let cur = 0;
    let temp;
    
    for(let i of nums) {
        temp = cur; // temp = 0 // temp = 1 // temp = 2 // temp = 4
        cur = Math.max(i+prev, cur); // cur = Math.max(1 + 0, 0) // cur = max(2+0, 1)// cur = max(3+1,2) 
        prev = temp;// prev = 0 // prev = 1 // prev = 2 // prev = 4
    }
    
    // 비교해야 하는 값이
    // index 기준으로
    // 0 + 2가 큰지, 1이 큰지 선택해 나가면 된다.
    
    return cur;
    
};

 

 

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

댓글