peacekim
할 수 있는 것과 할 수 없는 것.
peacekim
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 👨‍🏫ps (44)
      • ❄️프로그래머스 (20)
      • 🔟0️⃣백준 (21)
      • leetcode (3)
    • ✍🏻study (20)
      • 👐java (6)
      • 🍃spring (1)
      • 🥇algorithm (0)
      • 🚘oodp (4)
      • 📒 jpa (3)
      • 👣DB (2)
      • 🌂네트워크 (0)
      • 🎸기타 (3)
      • 👊 kotlin (1)
      • 🫥 jvm (0)
    • 📽project (4)
      • 🎀ReBoN (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
peacekim
👨‍🏫ps/leetcode

[leetcode] 198. House Robber [kotlin]

👨‍🏫ps/leetcode

[leetcode] 198. House Robber [kotlin]

2025. 1. 13. 21:52
반응형

문제분석

1. dp 문제이다.

2. nums input 으로 각 집에있는 돈 양이 들어온다.

3. nums array에 연속된 인덱스는 인접한 집으로 판단한다.

4. 인접한 집을 털 수 없다.

 

문제해결

1. 도둑이 선택할 수 있는 방법은 두가지이다. 현재 집을 털거나 털지 않거나이다.

2. 현재 집을 턴다면 바로 전 집을 털 수 없기 때문에, 전 집을 털었을 때의 최대 돈과 전전집을 털고 현재 집을 털었을 때, 최대 돈을 비교하여 현재 집 기준으로 최대 돈을 구한다.

3. 현재가 i라고 한다면 [i의 최대돈] = max([i-1 까지의 돈], [i-2 까지의 돈] + [i를 털었을때 돈] 이다.

class Solution {
    fun rob(nums: IntArray): Int {
        if (nums.size == 1) return nums[0]
        val dp = IntArray(nums.size) { 0 }
        dp[0] = nums[0]
        dp[1] = maxOf(nums[1],nums[0])
        for (i in 2..nums.size-1) {
            dp[i] = maxOf(dp[i-1], dp[i-2] + nums[i])
        }

        return dp[nums.size-1]
    }
}
반응형

'👨‍🏫ps > leetcode' 카테고리의 다른 글

[leetcode] 2.Add Two Numbers [Kotlin]  (0) 2025.01.05
[leetcode] 128.Longest Consecutive Sequence [kotlin]  (0) 2025.01.01
  • 문제분석
  • 문제해결
'👨‍🏫ps/leetcode' 카테고리의 다른 글
  • [leetcode] 2.Add Two Numbers [Kotlin]
  • [leetcode] 128.Longest Consecutive Sequence [kotlin]
peacekim
peacekim
할 수 있는 것과 할 수 없는 것. github: https://github.com/PyeongGangKim

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.