250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code JS)House Robber 본문
728x90
반응형
https://leetcode.com/problems/house-robber/
House Robber - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
DP 이용.
nums.length만큼 dp 배열을 선언하여 0으로 초기화.
dp[0] = nums[0]으로 저장하고 for문으로 1 ~ length만큼 반복한다.
점화식으로는 dp[i] = Math.max(nums[i] + (dp[i - 2] || 0), dp[i - 1])을 구할 수 있다.
dp[i - 2] || 0 은 i = 1부터 시작하기 때문에 i - 2가 배열의 범위를 벗어나서 undefined가 나온다.
이를 방지하기 위해 undfeind가 나오면 0을 더해준다.
리턴값은 dp[length - 1]을 한다.
var rob = function(nums) {
const length = nums.length;
const dp = Array(length).fill(0);
dp[0] = nums[0];
for(let i = 1; i < length; i++){
dp[i] = Math.max(nums[i] + (dp[i - 2] || 0), dp[i - 1]);
}
return dp[length - 1];
};
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code JS)Multiply Strings (0) | 2022.03.21 |
---|---|
(Leet Code JS)House Robber II (0) | 2022.03.16 |
(Leet Code JS)Valid Sdoku (0) | 2022.03.11 |
(Leet Code JS)Letter Case Permutation (0) | 2022.03.11 |
(Leet Code JS)Rotting Oranges (0) | 2022.03.10 |