Skip to content

Commit cbfa244

Browse files
committed
feat: add house robber solution
1 parent 3b3a3ae commit cbfa244

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

โ€Žhouse-robber/mangodm-web.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def rob(self, nums: List[int]) -> int:
6+
"""
7+
- Idea: i๋ฒˆ์งธ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก์€ ๋‘ ๊ฐ€์ง€ ์ค‘ ๋” ํฐ ๊ฐ’์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค.
8+
1. (i-2๋ฒˆ์งธ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก) + i๋ฒˆ์งธ ์ง‘์˜ ๊ธˆ์•ก
9+
2. (i-1๋ฒˆ์งธ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก)
10+
์ด๋ฅผ ์ด์šฉํ•ด ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๊ฐ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค.
11+
์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ  ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฐ’์„ ์ฑ„์šฐ๋ฉด, ๋งจ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์ „์ฒด ์ตœ๋Œ€ ๊ธˆ์•ก์ด ๋œ๋‹ค.
12+
- Time Complexity: O(n). n์€ ์ง‘์˜ ๊ฐœ์ˆ˜.
13+
๋ชจ๋“  ์ง‘์„ ํ•œ๋ฒˆ์”ฉ ์ˆœํšŒํ•ด์•ผ ํ•˜๋ฏ€๋กœ O(n) ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.
14+
- Space Complexity: O(n). n์€ ์ง‘์˜ ๊ฐœ์ˆ˜.
15+
๊ฐ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ O(n) ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
16+
"""
17+
if len(nums) == 1:
18+
return nums[0]
19+
20+
dp = [0] * len(nums)
21+
dp[0] = nums[0]
22+
dp[1] = max(nums[0], nums[1])
23+
24+
for i in range(2, len(nums)):
25+
dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])
26+
27+
return dp[-1]

0 commit comments

Comments
ย (0)