735. Asteroid Collision

Doyeon Kim·2022년 11월 8일

코딩테스트 공부

목록 보기
133/171

문제 링크 : https://leetcode.com/problems/asteroid-collision/description/


두 운석..?이 충돌하고 남은 운석을 반환하는 문제이다.

운석을 stack에 저장하고 주어진 조건에 따라서(-운석과 +운석이 절대값이 똑같으면 둘 다 없어짐, 절대값 큰 작은 쪽이 사라짐) stack에서 pop하고 남은 stack을 반환하면 된다

class Solution:
def asteroidCollision(self, asteroids: List[int]) -> List[int]:
if not asteroids or len(asteroids) == 1 :
return asteroids
stack = []

    for i in asteroids:
        while stack and i<0<stack[-1]:
            if -i == stack[-1]:
                stack.pop()
                break
            elif stack[-1] < -i:
                stack.pop()
            else:
                break
        else:
            stack.append(i)
    return stack
profile
성장하고 도전하는 개발자. 프로그래밍 좋아하세요?

0개의 댓글