dp
배열을 nums.length
의 길이로 생성한다.dp
배열의 마지막 요소를 통해 최대 금액을 반환한다.function rob(nums: number[]): number {
const n = nums.length
const dp = Array(n)
dp[0] = nums[0]
dp[1] = Math.max(nums[0], nums[1])
for(let i = 2; i < n; i++) {
// 전 집에서만 도둑질 하거나, 전전 집과 현재 집을 도둑질 하는것 중 최댓값
dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i])
}
return dp[n - 1]
};