Daily LeetCode Challenge - 946. Validate Stack Sequences

Min Young Kim·2023년 4월 13일
0

algorithm

목록 보기
120/198

Problem From.
https://leetcode.com/problems/validate-stack-sequences/

오늘 문제는 pushed 배열과 popped 배열이 주어질때, 임의의 스택이 있다고 가정하고 그 스택에 pushed 과 popped 배열에 놓인대로 반복했을때, stack 이 비게 되면 true 아니면 false 를 리턴하는 문제였다.

먼저 pushed 를 순회하면서 stack 에 원소를 넣어주고, 원소를 하나씩 넣어줄 때 마다, popped 배열에서 popIndex 에 있는 원소와 비교하여서 stack 에서 삭제할 수 있는지 검사해준다.
위 과정을 반복하다가 마지막에 stack 이 차있으면 false 비어있으면 true 를 반환해주었다.

import java.util.Stack

class Solution {
    fun validateStackSequences(pushed: IntArray, popped: IntArray): Boolean {
        val stack = Stack<Int>()
        var popIndex = 0
        for(x in pushed) {
            stack.push(x)
            while(stack.isNotEmpty() && stack.peek() == popped[popIndex]) {
                stack.pop()
                popIndex += 1
            }
        }
        return stack.isEmpty()
    }
}
profile
길을 찾는 개발자

0개의 댓글