Skip to content

Commit 85dca59

Browse files
authored
[ PS ] : House Robber II
1 parent 18d46cc commit 85dca59

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

โ€Žhouse-robber-ii/uraflower.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// ์ตœ๋Œ€ ๊ธˆ์•ก์€ ...
2+
// nums[0]์„ ํ„ฐ๋Š” ๊ฒฝ์šฐ: rob(nums[2] ~ nums[last - 1]) + nums[0]
3+
// nums[0]์„ ์•ˆ ํ„ฐ๋Š” ๊ฒฝ์šฐ: rob(nums[1] ~ nums[last])
4+
// ๋”ฐ๋ผ์„œ nums[0]์„ ํ„ธ์ง€ ๋ง์ง€ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ณ„์‚ฐ
5+
6+
/**
7+
* @param {number[]} nums
8+
* @return {number}
9+
*/
10+
const rob = function (nums) {
11+
if (nums.length === 1) return nums[0];
12+
13+
const dp1 = [nums[0]]; // ์ฒซ ์ง‘์„ ํ„ฐ๋Š” ๊ฒฝ์šฐ ์ตœ๋Œ€ ๊ธˆ์•ก
14+
const dp2 = [0]; // ์ฒซ ์ง‘์„ ์•ˆ ํ„ฐ๋Š” ๊ฒฝ์šฐ ์ตœ๋Œ€ ๊ธˆ์•ก
15+
16+
for (let i = 1; i < nums.length; i++) {
17+
dp1[i] = Math.max(dp1[i - 1], (dp1[i - 2] || 0) + nums[i]);
18+
dp2[i] = Math.max(dp2[i - 1], (dp2[i - 2] || 0) + nums[i]);
19+
}
20+
21+
return Math.max(dp1[dp1.length - 2], dp2[dp2.length - 1]);
22+
}
23+
24+
// ์‹œ๊ฐ„๋ณต์žก๋„: O(n)
25+
// ๊ณต๊ฐ„๋ณต์žก๋„: O(n)

0 commit comments

Comments
ย (0)