상위 150개 인터뷰쉬움

마지막 돌 무게

'Last Stone Weight' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

쉬움

돌[i]가 i번째 돌의 무게인 정수 돌 배열이 주어졌습니다.

우리는 돌을 가지고 게임을 하고 있습니다. 매 턴마다 가장 무거운 돌 두 개를 선택하여 함께 부숴버립니다. 가장 무거운 두 돌의 무게가 x와 y이고 x <= y라고 가정합니다. 이 충돌의 결과는 다음과 같습니다.

- x == y이면 두 돌이 모두 파괴되고,

- x != y이면 무게가 x인 돌은 파괴되고, 무게가 y인 돌은 새로운 무게 y - x를 갖게 됩니다.

게임이 끝나면 최대 1개의 돌만 남습니다.

마지막 남은 돌의 무게를 반환합니다. 남은 돌이 없으면 0을 반환합니다.

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

제약
  • 1 <= len(stones) <= 30
  • 1 <= stones[i] <= 1000

Example 1
Input
stones = [2,7,4,1,8,1]
Output
1
Explanation

Smash 7 and 8 to get 1, array becomes [2,4,1,1,1]. Smash 2 and 4 to get 2, array becomes [2,1,1,1]. Smash 2 and 1 to get 1, array becomes [1,1,1]. Smash 1 and 1 to get 0, array becomes [1]. The last remaining stone is 1.

Example 2
Input
stones = [1]
Output
1
Explanation

Only one stone, so weight is 1.

Need a Hint?
세트나 힙과 같은 힙/우선순위 큐 관련 데이터 구조를 사용하는 것을 고려해보세요.
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 리소스

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