Skip to content

Commit 383aaa4

Browse files
committed
house robber solution
1 parent 20ee1a6 commit 383aaa4

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

โ€Žhouse-robber/smosco.jsโ€Ž

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* House Robber ๋ฌธ์ œ
3+
*
4+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
5+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
6+
*
7+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ•:
8+
* - Dynamic Programming์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์œ„์น˜์—์„œ์˜ ์ตœ๋Œ€ ๊ธˆ์•ก์„ ๊ณ„์‚ฐ
9+
* - ํ˜„์žฌ ์ง‘์„ ํ„ธ ๊ฒฝ์šฐ: ์ „์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’ + ํ˜„์žฌ ์ง‘์˜ ๊ธˆ์•ก
10+
* - ํ˜„์žฌ ์ง‘์„ ์•ˆ ํ„ธ ๊ฒฝ์šฐ: ์ด์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€๊ฐ’
11+
* - ๋‘ ๊ฒฝ์šฐ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์„ ํƒ
12+
*/
13+
const rob = (nums) => {
14+
if (nums.length === 1) return nums[0];
15+
16+
let prev2 = nums[0]; // ์ „์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก
17+
let prev1 = Math.max(nums[0], nums[1]); // ์ด์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก
18+
19+
for (let i = 2; i < nums.length; i++) {
20+
const current = Math.max(prev1, prev2 + nums[i]);
21+
prev2 = prev1;
22+
prev1 = current;
23+
}
24+
25+
return prev1;
26+
};

0 commit comments

Comments
ย (0)