자바/코딩테스트

[프로그래머스] 짝지어 제거하기 - Java(자바)

대전집주인 2024. 3. 25. 13:35
728x90
SMALL

 

문제 이해

  • 같은 알파벳 소문자가 짝지어 이루어져있으면 그 둘을 제거한다.
  • 제거된 알파벳의 앞뒤로 문자열을 이어 붙인다.
  • 위와 같이 반복하였을때 문자열이 다 제거되면 1 아니면 0
  • 스택을 이용하면 문자열을 스택을 넣기전 이전 스택의 값(peek)를 통해 같은 값이면 pop 없으면 push로 관리
import java.util.*;
class Solution
{
    public int solution(String s)
    {
        int answer = -1;
        Stack<String> stack = new Stack<>();
        
        for(int i = 0; i<s.length(); i++){
            if(!stack.isEmpty()){
                if(stack.peek().equals(s.substring(i, i+1))){
                    stack.pop();
                }else{
                    stack.push(s.substring(i, i+1));
                }
            }else{
                stack.push(s.substring(i, i+1));
            }
        }

        return stack.size() > 0 ? 0 : 1;
    }
}
728x90
LIST