Daily LeetCode Challenge - 735. Asteroid Collision

Min Young Kim·2023년 7월 20일
0

algorithm

목록 보기
195/198

Problem From.

https://leetcode.com/problems/asteroid-collision/

오늘 문제는 asteroids 배열이 주어질때, 주어진 조건에 따라 원소들이 폭발을 일으켜서 없어지는지 아닌지 구하는 문제였다.

이 문제는 stack 을 이용해서 풀 수 있었는데, 먼저 모든 원소를 스택에 넣어두고, 앞에서부터 하나씩 빼오면서 각각의 원소가 충돌이 되느지 안되는지를 구하면서 문제를 풀면 되었다.

import java.util.Stack
import kotlin.math.abs
class Solution {
    fun asteroidCollision(asteroids: IntArray): IntArray {
        
        var stack = Stack<Int>()
        
        for(asteroid in asteroids){
            var temp = asteroid
            while(stack.isNotEmpty() && temp < 0 && stack.peek() > 0){
                if(stack.peek() == abs(temp)){
                    stack.pop()
                    temp = 0
                }
                else if(stack.peek() > abs(temp)){
                    temp = 0
                }
                else{
                    stack.pop()
                }
            }
            if(temp!=0){
                stack.push(temp)
            }
        }

        return stack.toIntArray()
    }
}
profile
길을 찾는 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

많은 도움이 되었습니다, 감사합니다.

답글 달기