도둑이 도둑질을 하는데
이웃한 두 집을 연속으로 털면 경찰에 잡힌다.
연속으로 털지 않으면서 가장 많은 돈을 털 수 있도록 하는 문제이다.
/**
* @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;
};
'Web development > Algorithm' 카테고리의 다른 글
[프로그래머스] N으로 표현 (0) | 2021.08.12 |
---|---|
[프로그래머스] 해시/위장 (0) | 2021.08.12 |
[LeetCode] 118. Pascal's Triangle (javascript) (0) | 2021.08.12 |
[프로그래머스] 뉴스 클러스터링 (javascript) (0) | 2021.08.12 |
[LeetCode] Minimum Path Sum (javascript) (0) | 2021.06.22 |
댓글