짝지어 제거하기

import java.util.*;

class Solution
{
    public int solution(String s)
    {
        int answer = -1;

        ArrayDeque<Character> stack = new ArrayDeque<>();
        
        char[] arr = s.toCharArray();
        
        for(char a : arr){
            if(stack.isEmpty()){
                stack.push(a);
                continue;   
            }
            
            if(stack.peek() != a)
                stack.push(a);
            else
                stack.pop();
            
        }
        
        if(stack.isEmpty())
            return 1;
        else
            return 0;
    }
}

발상

현재 가리키고 있는 문자가 i번째면 i+1이든 i-1이든 비교를 한다. 어 이렇게 생각하면 사실 최근 문자랑 비교하는거네? i번째 문자 입장에서 직전에 문자랑만 비교하면 되겠네? -> 스택의 구조

Last updated