Skip to content

Commit 205ef82

Browse files
committed
add solution : 198. House Robber
1 parent 24faa7d commit 205ef82

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

β€Žhouse-robber/mmyeon.jsβ€Ž

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
*
3+
* μ ‘κ·Ό 방법 : dp μ‚¬μš©
4+
* - λ°°μ—΄ 길이가 1개 μΌλ•ŒλŠ” 첫 번쨰 κ°’ λ¦¬ν„΄ν•˜κ³ , 2개면 더 큰 수λ₯Ό λ¦¬ν„΄ν•œλ‹€.
5+
* - 3개 λΆ€ν„°λŠ” λ°”λ‘œ μ˜†μ§‘ 값에 ν˜„μž¬μ§‘ 값을 λ”ν•œ κ°’κ³Ό μ˜†μ˜†μ§‘μ˜ 값을 λΉ„κ΅ν•΄μ„œ 큰 값을 κ³„μ‚°ν•œλ‹€.
6+
* - λ‹€μŒ μ§‘ 값에 ν˜„μž¬κΉŒμ§€μ˜ κ°’ ν™œμš©ν•˜κΈ° μœ„ν•΄μ„œ, λ°”λ‘œ μ˜†μ§‘, μ˜†μ˜†μ§‘ 값을 μ—…λ°μ΄νŠΈν•΄μ€€λ‹€.
7+
* - ν˜„μž¬ 값이 μ €μž₯된 μ˜†μ§‘κ°’μ„ λ¦¬ν„΄ν•œλ‹€.
8+
*
9+
* μ‹œκ°„λ³΅μž‘λ„ :
10+
* - μ£Όμ–΄μ§„ 숫자 λ°°μ—΄ 길이만큼 1회 μˆœνšŒν•˜λ‹ˆκΉŒ O(n)
11+
*
12+
* κ³΅κ°„λ³΅μž‘λ„ :
13+
* - μ˜†μ§‘κ³Ό μ˜†μ˜†μ§‘ 값을 2개의 λ³€μˆ˜μ— μ €μž₯ν•΄μ•Όν•˜λ‹ˆκΉŒ O(1)
14+
*
15+
*/
16+
/**
17+
* @param {number[]} nums
18+
* @return {number}
19+
*/
20+
var rob = function (nums) {
21+
if (nums.length === 1) return nums[0];
22+
if (nums.length === 2) return Math.max(nums[0], nums[1]);
23+
24+
let prevPrevHouse = nums[0];
25+
let prevHouse = Math.max(nums[0], nums[1]);
26+
27+
for (let i = 2; i < nums.length; i++) {
28+
const current = Math.max(prevHouse, prevPrevHouse + nums[i]);
29+
prevPrevHouse = prevHouse;
30+
prevHouse = current;
31+
}
32+
33+
return prevHouse;
34+
};

0 commit comments

Comments
Β (0)