
문제
https://leetcode.com/problems/house-robber/description/
입력
1 <= nums.length <= 100 // 집 개수
0 <= nums[i] <= 400 // 가지고 있는 재산
결과
ans: Int = 훔칠 수 있는 최대 금액
해석
인접 집을 건드리면 안되기 때문에 현재 집을 털기 위해서는 이전 집을 털지 않아야함
현재 위치가 i라 할때 필요한 정보는 i-1과 i-2
코드
class Solution {
func rob(_ nums: [Int]) -> Int {
let n = nums.count
var cache: [Int] = [Int](repeating: 0, count:n)
if n == 1 {
return nums[0]
}
cache[0] = nums[0]
cache[1] = max(cache[0],nums[1])
for i in 2..<n {
cache[i] = max(cache[i-1], cache[i-2] + nums[i])
}
return cache[n-1]
}
}
'PS > LeetCode' 카테고리의 다른 글
Decode Ways (0) | 2025.02.03 |
---|---|
House Robber II (0) | 2025.02.03 |
Combination Sum IV (0) | 2025.02.03 |
Word Break (0) | 2025.02.03 |
300. Longest Increasing Subsequence (0) | 2025.02.02 |