Skip to content

Commit 3dc6420

Browse files
committed
Solve: House Robber
1 parent a560bdd commit 3dc6420

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

โ€Žhouse-robber/Jay-Mo-99.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
๏ปฟ# --- ํ•ด์„ ---
2+
#๋งค๊ฐœ๋ณ€์ˆ˜ nums ๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ nums[i] ์ผ๋•Œ์˜ ์ตœ๋Œ€ ๋ˆ„์ ๊ฐ’์„ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค
3+
#prev1์€ ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๊ณ  ๋ˆ„์ ๊ธˆ์•ก, prev2๋Š” ์ด์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๊ณ  ๋ˆ„์ ๊ธˆ์•ก์ด๋‹ค.
4+
#ํ˜„์žฌ ์ง‘ nums[i] ๋ฅผ ๋„๋‘‘์งˆ ํ•˜๋ ค๋ฉด, ์ด์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๊ณ ๊ธˆ์•ก(prev2) + ํ˜„์žฌ ์ง‘(nums[i])์ด๋‹ค.
5+
#ํ˜„์žฌ ์ง‘ nums[i]๋ฅผ ๋„๋‘‘์งˆ์— ์ œ์™ธํ•˜๋ ค๋ฉด ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๊ณ  ๊ธˆ์—‘(prev1) ์ด๋‹ค.
6+
#loop ๋‹น ์ € ๋‘˜์˜ ์ตœ๋Œ“๊ฐ’์„ ์„ ํƒํ•˜์—ฌ current๋ณ€์ˆ˜์— updateํ•ด์ค€๋‹ค.
7+
8+
# --- Big O
9+
#N: ๋งค๊ฐœ๋ณ€์ˆ˜ nums์˜ ๊ธธ์ด๊ฐ€ N์ด๋‹ค.
10+
11+
# Time Complexity: O(N)
12+
#- for loop ๋Š” nums[0] ๋ถ€ํ„ฐ nums[len(nums)]๋งŒํผ ์ˆœํšŒ: O(N)
13+
14+
# Space Complexity: O(1)
15+
#-current,prev1,prev2 ๋Š” nums์™€ ๋ฌด๊ด€ํ•œ ์ƒ์ˆ˜ ๋ฉ”๋กœ๋ฆฌ ํ• ๋‹น: O(1)
16+
17+
18+
class Solution(object):
19+
def rob(self, nums):
20+
"""
21+
:type nums: List[int]
22+
:rtype: int
23+
"""
24+
#prev1: ํ˜„์žฌ ์ง‘๊นŒ์ง€์˜ ์ตœ๊ณ  ๊ธˆ์•ก
25+
#prev2: ์ด์ด์ „ ์ง‘๊นŒ์ง€์˜ ์ตœ๊ณ  ๊ธˆ์•ก
26+
prev1,prev2=0,0
27+
28+
for num in nums:
29+
#current๋Š” prev1๊ณผ prev2+num ์ค‘ ํฐ ๊ฐ’์„ update
30+
current = max(prev1,prev2+num)
31+
prev2 = prev1 #current์—…๋ฐ์ดํŠธ ์ดํ›„ prev1(ํ˜„์žฌ ์ตœ๊ณ ๊ธˆ์•ก) ์ด prev2(์ด์–ด์ง„ ์ง‘๊นŒ์ง€ ์ตœ๊ณ ๊ธˆ์•ก)๊ฐ€๋œ๋‹ค
32+
prev1= current #prev1์€ ํ˜„ num๊นŒ์ง€ ๊ณ ๋ ค๋œ current์˜ ๊ฐ’์ด๋‹ค. (ํ˜„์žฌ ์ตœ๊ณ  ๊ธˆ์•ก์•ก)
33+
return prev1
34+
nums = [2,7,9,3,1]
35+
solution = Solution()
36+
solution.rob(nums)
37+

0 commit comments

Comments
ย (0)