코딩테스트/프로그래머스

[프로그래머스 / Java] Lv2 - 짝지어 제거하기

COBI-98 2023. 1. 4. 15:57

🔒 짝지어 제거하기

✔ 문제 설명

🚩 요구사항 분석

  • 스택을활용해 스택이 비어있지않고 peek 스택 값이 같다면 지우는 방식을 진행했다.

🔑 문제풀이

import java.util.Stack;

class Solution
{
    public int solution(String s)
    {
        int answer = 0;
        Stack<Character> stack = new Stack<>();
        //1. 문자제거하기
        for (int i=0; i < s.length(); i++){
            char c = s.charAt(i);
            // 현재 스택이 비어있지않고 peek 스택의 최상위 값이 c와 같다면 pop  
            if(!stack.isEmpty() && stack.peek() == c){
                stack.pop();
            }else{
                stack.push(c);
            }

        }
        answer = stack.size() == 0 ? 1 : 0;
        
        return answer;
    }
}

💡 추가한 테스트 케이스

  parameters return
test1 "baacaa" 0
test2 "bbaaaa" 1
test3 "bbaaaqwerasqqqr" 0
4개 연속된문자 확인
3개 연속된문자 확인