상위 150개 인터뷰중간

하우스 강도 II

'House Robber II' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

중간

당신은 거리의 집을 털려는 전문 강도입니다. 각 집에는 일정 금액의 돈이 숨겨져 있습니다. 이곳의 모든 집은 원형으로 배열되어 있습니다. 즉, 첫 번째 집이 마지막 집의 이웃이라는 의미입니다. 한편, 인접한 집에는 보안 시스템이 연결되어 있어 같은 밤에 인접한 두 집에 침입이 발생하면 자동으로 경찰에 신고됩니다.

각 집의 금액을 나타내는 정수 배열 숫자가 주어지면 오늘 밤 경찰에 신고하지 않고 훔칠 수 있는 최대 금액을 반환하세요.

rob(nums: List[int]) -> int 함수를 작성하세요.

제약
  • 1 <= len(nums) <= 100
  • 0 <= nums[i] <= 1000

Example 1
Input
nums = [2,3,2]
Output
3
Explanation

You cannot rob house 1 and house 3 because they are adjacent in the circular layout.

Example 2
Input
nums = [1,2,3,1]
Output
4
Explanation

Rob house 1 (money = 1) and rob house 3 (money = 3). Total = 4.

Need a Hint?
세트나 힙과 같은 1D DP 관련 데이터 구조를 사용해 보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.