728x90
<문제 링크>
https://leetcode.com/problems/house-robber/
<문제 풀이>
1. 더하는 숫자들이 이웃하지만 않으면 됨
2. 바로 직전의 돈과 두번째 전의 돈+현재 돈 중 큰 값을 구하면 됨
3. 집이 하나만 있을 수 있음
<코드>
class Solution:
def rob(self, nums: List[int]) -> int:
answer = []
if len(nums)==1:
return nums[-1]
answer.append(nums[0])
answer.append(max(nums[0], nums[1]))
for i in range(2,len(nums)):
answer.append(max(answer[i-1], answer[i-2]+nums[i]))
return answer[-1]
<고쳐야 할 점>
- 잘 이해해두고 알아두기
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[이분탐색] 릿코드 Medium 34 'Find First and Last Position of Element in Sorted Array' (Python) (0) | 2022.02.03 |
---|---|
[해시] 릿코드 Medium 567 'Permutation in String' (Python) (0) | 2022.01.27 |
[동적계획법] 릿코드 Easy 70 'Climbing Stairs' (Python) (0) | 2022.01.25 |
[비트연산] 릿코드 Easy 190 'Reverse Bits' (Python) (0) | 2022.01.23 |
[비트연산] 릿코드 Easy 191 'Number of 1 Bits' (Python) (0) | 2022.01.22 |