알고리즘

프로그래머스 짝지어 제거하기 (JAVA)

박카스마시며코딩 2023. 7. 20. 21:34

https://school.programmers.co.kr/learn/courses/30/lessons/12973

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

저는 스택을 이용해 문제를 해결하였습니다.

스택을 통해 이전의 문자를 저장하고 현재 문자와 스택의 맨 위에 있는 값과 같다면 빼주고 같지 않다면 스택에 넣어주었습니다.

마지막으로 스택이 비어있는지를 판단하고 결과를 리턴하였습니다.

 

import java.util.*;

class Solution {
    private static final int SUCCESS = 1;
    private static final int FAIL = 0;
    public int solution(String s) {
        Deque<Character> stack = new LinkedList<>();
        for(int i = 0 ; i < s.length() ; i++){
            char now = s.charAt(i);
            if(!stack.isEmpty() && stack.peekFirst() == now){
                stack.pop();
                continue;
            }
            stack.push(now);
        }
        if(stack.isEmpty()){
            return SUCCESS;
        }
        return FAIL;
    }
}