Skip to content

Commit cd41368

Browse files
committed
feat: add solution to House Robber DaleStudy#264
1 parent 9efb854 commit cd41368

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

โ€Žhouse-robber/river20s.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
class Solution(object):
2+
def rob(self, nums):
3+
"""
4+
# ์ดˆ๊ธฐ ํ’€์ด
5+
rob_house_even = 0 # ์ง์ˆ˜ ์ง‘๋“ค์„ ํ„ฐ๋Š” ๊ฒฝ์šฐ ๊ธˆ์•ก์˜ ํ•ฉ
6+
rob_house_odd = 0 # ํ™€์ˆ˜ ์ง‘๋“ค์„ ํ„ฐ๋Š” ๊ฒฝ์šฐ ๊ธˆ์•ก์˜ ํ•ฉ
7+
for index, value in enumerate(nums):
8+
if index % 2 == 0:
9+
rob_house_even += value
10+
else:
11+
rob_house_odd += value
12+
13+
return max(rob_house_even, rob_house_odd)
14+
# ์‹คํŒจ:
15+
# ๋‹จ์ˆœํžˆ ์ง์ˆ˜์™€ ํ™€์ˆ˜๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ
16+
# ์ตœ์  ํ•ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†์Œ
17+
18+
===========================================
19+
20+
๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
21+
๊ฐ๊ฐ์˜ ์ตœ์  ํ•ด๋ฅผ ๋ˆ„์ ํ•˜์—ฌ ๋งˆ์ง€๋ง‰๊นŒ์ง€์˜ ์ตœ์  ํ•ด๋ฅผ ๊ตฌํ•ด์•ผ ํ•จ
22+
23+
"""
24+
if not nums: # ๋นˆ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์งˆ ๊ฒฝ์šฐ, 0์„ ๋ฐ˜ํ™˜
25+
return 0
26+
if len(nums) == 1: # ์š”์†Œ๊ฐ€ ํ•˜๋‚˜์ธ ๊ฒฝ์šฐ, ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜
27+
return nums[0]
28+
29+
# prev2: i-2๋ฒˆ์งธ๊นŒ์ง€ ๊ณ ๋ ค ํ–ˆ์„ ๋•Œ์˜ ์ตœ๋Œ€ ๊ธˆ์•ก
30+
# prev1: i-1๋ฒˆ์งธ๊นŒ์ง€ ๊ณ ๋ ค ํ–ˆ์„ ๋•Œ์˜ ์ตœ๋Œ€ ๊ธˆ์•ก
31+
# ์ดˆ๊ธฐ๊ฐ’ ์„ค์ •:
32+
# - ์ฒซ ๋ฒˆ์งธ ์ง‘(์ธ๋ฑ์Šค 0)๋งŒ ๊ณ ๋ คํ•œ ๊ฒฝ์šฐ nums[0]
33+
# - ๋‘ ๋ฒˆ์งธ ์ง‘(์ธ๋ฑ์Šค 1)๊นŒ์ง€ ๊ณ ๋ คํ•œ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์ง‘๊ณผ ๋‘ ๋ฒˆ์งธ ์ง‘ ์ค‘ ํฐ ๊ฐ’
34+
prev2, prev1 = nums[0], max(nums[0], nums[1])
35+
36+
for i in range(2, len(nums)):
37+
# ๋‘ ์„ ํƒ์ง€ ์ค‘ ๋” ๊ธˆ์•ก์ด ํฐ ๊ฒฝ์šฐ๋ฅผ ๊ณ„์‚ฐ
38+
# 1. i๋ฒˆ์งธ ์ง‘์„ ํ„ธ์ง€ ์•Š์„ ๋•Œ: ์ด์ „๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก prev1
39+
# 2. i๋ฒˆ์งธ ์ง‘์„ ํ„ธ ๋•Œ: i-1๋ฒˆ์งธ ์ง‘์€ ํ„ธ ์ˆ˜ ์—†์Œ
40+
# i-2๋ฒˆ์งธ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก prev2์— ํ˜„์žฌ ์ง‘์˜ ๊ธˆ์•ก nums[i]๋ฅผ ๋”ํ•จ
41+
current = max(prev1, prev2 + nums[i])
42+
43+
# ์ด์ „ ๋‹จ๊ณ„์˜ prev1์€ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ prev2๊ฐ€,
44+
# current ๊ฐ’์€ ์ƒˆ๋กœ์šด prev1์ด ๋จ
45+
prev2, prev1 = prev1, current
46+
47+
# ๋งˆ์ง€๋ง‰ ์ง‘๊นŒ์ง€์˜ ์ตœ๋Œ€ ๊ธˆ์•ก์ธ prev1 ๋ฐ˜ํ™˜
48+
return prev1

0 commit comments

Comments
ย (0)