Skip to content

Commit 5caa51a

Browse files
committed
house robber ii solution
1 parent b2e0433 commit 5caa51a

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
function rob(nums: number[]): number {
2+
if (nums.length < 3) {
3+
return Math.max(...nums);
4+
}
5+
6+
// House Robber II์˜ ํ•ต์‹ฌ: ์›ํ˜•์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์ง‘๋“ค์„, ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค
7+
let first = nums.slice(0, nums.length - 1);
8+
let second = nums.slice(1, nums.length);
9+
10+
// House Robber ์ ํ™”์‹์˜ ์ฒซ ๋ฒˆ์งธ ํ•ญ: ์ฒซ ๋ฒˆ์งธ ์ง‘๊ณผ ๋‘ ๋ฒˆ์งธ ์ง‘์„, ๋‘˜ ์ค‘ ๋” ํฐ ๊ฐ’์œผ๋กœ ๋ฏธ๋ฆฌ ๋™๊ธฐํ™”ํ•ด ๋‘”๋‹ค
11+
first[1] = Math.max(first[0], first[1]);
12+
second[1] = Math.max(second[0], second[1]);
13+
14+
// ๋ฐฐ์—ด ๊ธธ์ด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๊ฒฝ์šฐ, House Robber 1๋ฒˆ ๋ฌธ์ œ์ฒ˜๋Ÿผ ์ ํ™”์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ
15+
if (nums.length > 2) {
16+
for (let i = 2; i < nums.length - 1; i++) {
17+
first[i] = Math.max(first[i] + first[i - 2], first[i - 1])
18+
second[i] = Math.max(second[i] + second[i - 2], second[i - 1])
19+
}
20+
}
21+
22+
// ๋‘ ๊ฒฐ๊ณผ ์ค‘ ๋” ํฐ ๊ฒƒ์„ ๋ฐ˜ํ™˜
23+
let firstResult = Math.max(...first);
24+
let secondResult = Math.max(...second);
25+
26+
return Math.max(firstResult, secondResult);
27+
};

0 commit comments

Comments
ย (0)