|
| 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