반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 1046 | Last Stone Weight | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/last-stone-weight/
문제
You are given an array of integers stones where stones[i] is the weight of the ith stone.
We are playing a game with the stones. On each turn, we choose the heaviest two stones and smash them together. Suppose the heaviest two stones have weights x and y with x <= y. The result of this smash is:
- If x == y, both stones are destroyed, and
- If x != y, the stone of weight x is destroyed, and the stone of weight y has new weight y - x.
At the end of the game, there is at most one stone left.
Return the smallest possible weight of the left stone. If there are no stones left, return 0.
조건
- 1 <= stones.length <= 30
- 1 <= stones[i] <= 1000
내 풀이
stone 수가 최대 30개이므로 시간초과가 일어날 걱정은 하지 않아도 된다.
문제에서 말하는 대로 진행하면 된다.
stones 리스트를 정렬한 후에 제일 큰 두개를 비교해서 같으면 둘 다 없애고, 다르면 둘 다 없앤 후, 그 차이만큼을 stones에 다시 추가해주면 된다.
이 과정을 반복한다.
마지막에 stones의 남은 두 원소가 같아 아무것도 남지 않게되면 0을, 그렇지 않고 한 원소가 남아있으면 그 원소를 리턴한다.
코드
class Solution:
def lastStoneWeight(self, stones: List[int]) -> int:
while len(stones) > 1:
stones.sort(reverse=True)
if stones[0] > stones[1]:
stones.append(stones[0]-stones[1])
del stones[1]
del stones[0]
if stones:
return stones[0]
else:
return 0
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 1260 | Shift 2D Grid | Python (0) | 2022.04.11 |
---|---|
[LeetCode] 703 | Kth Largests Element in a Stream | Python (0) | 2022.04.08 |
[LeetCode] 923 | 3Sum With Multiplicity | Python (0) | 2022.04.06 |
[LeetCode] 11 | Container With Most Water | Python (0) | 2022.04.05 |
[LeetCode] 1721 | Swapping Nodes in an Linked List | Python (0) | 2022.04.04 |
Comments