[LeetCode] 198. House Robber, Medium

2025. 4. 30. 16:47·CodingTest/LeetCode
반응형

1. 문제

  • 집에 가지고 있는 금액 배열인 nums가 주어진다. 한 집을 털면 양 옆 집은 경찰이 출동하기 때문에 털 수 없다고 할 때, 최대로 털 수 있는 금액을 반환하라.

2. 해결

function rob(nums: number[]): number {
    const n = nums.length;
    if (n === 0) return 0;
    if (n === 1) return nums[0];
    if (n === 2) return Math.max(nums[0], nums[1]);

    const dp = [nums[0], 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]
};
  • 첫 풀이 때 3번째 부터 점화식을 세워서 풀긴 했는데, 그렇게 할 필요가 없었다.
  • 우선 0~2번 인덱스 까지는 예외처리를 해주고, 0번은 그대로, 1번은 0과 1중 가장 큰 값을 넣는다. (해당 집을 털었을 때의 최대 비용이므로.)
  • 3번 인덱스는 비교 대상이 1. 직전 집의 최대 값, 2. 2개 전의 집을 턴 최대값 + 현재 집의 코스트를 비교하여 저장한다.
  • 마지막 집을 털었을 때 가질 수 있는 최대 비용이 마지막 인덱스에 담긴다.
저작자표시 (새창열림)
'CodingTest/LeetCode' 카테고리의 다른 글
  • [LeetCode] 62. Unique Paths, Medium
  • [LeetCode] 790. Domino and Tromino Tiling, Medium
  • [LeetCode] 746. Min Cost Climbing Stairs, Easy
  • [LeetCode] 1137. N-th Tribonacci Number, Easy
뜸부깅
뜸부깅
코딩에 대한 여러 개인적인 생각을 정리하고 공부를 하는 공간입니다!!
  • 뜸부깅
    코오오딩
    뜸부깅
  • 전체
    오늘
    어제
    • Note (429)
      • Skill (31)
        • Java & Spring (9)
        • Javascript & HTML & CSS (0)
        • React (0)
        • Next.js (22)
      • CodingTest (389)
        • 백준 온라인 저지(BOJ) (140)
        • 프로그래머스(Programmers) (79)
        • LeetCode (170)
      • Algorithm & Data Structure (6)
      • [Project] 포트폴리오 (3)
        • Front end (3)
        • Back end (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    boj2108
    medium
    백준2751
    Java
    Easy
    boj1427
    알고리즘
    leetcode 2236
    백준1260
    component-scan
    백준
    TypeScript
    백준1427
    프로그래머스
    BOJ
    next 14
    자바
    meidum
    백준7576자바
    백준7576
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
뜸부깅
[LeetCode] 198. House Robber, Medium
상단으로

티스토리툴바