Skip to content

Commit 5afc675

Browse files
committed
add solution : 198. House Robber
1 parent cb600d6 commit 5afc675

File tree

2 files changed

+50
-34
lines changed

2 files changed

+50
-34
lines changed

โ€Žhouse-robber/mmyeon.js

Lines changed: 0 additions & 34 deletions
This file was deleted.

โ€Žhouse-robber/mmyeon.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
*
3+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• :
4+
* - ์ตœ์ ์˜ ํ•ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ dp ์‚ฌ์šฉ
5+
* - ํ˜„์žฌ ์ธ๋ฑ์Šค๊นŒ์ง€ ํ›”์น  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ๊ฐ’์„ dp์— ์ €์žฅ
6+
*
7+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(n)
8+
* - nums ๋ฐฐ์—ด์„ 1ํšŒ๋งŒ ์ˆœํšŒํ•˜๋‹ˆ๊นŒ O(n)
9+
*
10+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(n)
11+
* - nums ๋ฐฐ์—ด ํฌ๊ธฐ๋งŒํผ dp ๋ฐฐ์—ด์— ์ €์žฅ
12+
*/
13+
function rob(nums: number[]): number {
14+
const dp: number[] = [];
15+
16+
dp[0] = nums[0];
17+
dp[1] = Math.max(nums[0], nums[1]);
18+
19+
for (let i = 2; i < nums.length; i++) {
20+
dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);
21+
}
22+
23+
return dp[nums.length - 1];
24+
}
25+
26+
/**
27+
*
28+
* ์ ‘๊ทผ ๋ฐฉ๋ฒ• : ๊ณต๊ฐ„ ๋ณต์žก๋„ O(1)๋กœ ์ตœ์ ํ™”
29+
* - ์ด์ „ ๋‘ ๊ฐ’๋งŒ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐœ์„ 
30+
*
31+
* ์‹œ๊ฐ„๋ณต์žก๋„ : O(n)
32+
*
33+
* ๊ณต๊ฐ„๋ณต์žก๋„ : O(1)
34+
* - ๊ณ ์ •๋œ ๋ณ€์ˆ˜๋งŒ ์‚ฌ์šฉ
35+
*/
36+
function rob(nums: number[]): number {
37+
if (nums.length === 1) return nums[0];
38+
if (nums.length === 2) return Math.max(nums[0], nums[1]);
39+
40+
let prev2 = nums[0];
41+
let prev1 = Math.max(nums[0], nums[1]);
42+
43+
for (let i = 2; i < nums.length; i++) {
44+
const current = Math.max(prev1, prev2 + nums[i]);
45+
prev2 = prev1;
46+
prev1 = current;
47+
}
48+
49+
return prev1;
50+
}

0 commit comments

Comments
ย (0)