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

2023. 1. 18. 17:51코딩테스트/프로그래머스

문제

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

 

프로그래머스

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

programmers.co.kr

 

문제를 읽어보면 연속된 문자가 있으면 제거해준다고 나왔다. 이러한 문제는 자바에서 제공하는 Stack을 이용해서 풀면 편한다.

 

1. 문자열을 char형 배열로 만들어준다.

2. Stack을 이용하여 푼다.

 

나의 풀이

 

class Solution
{
    public int solution(String s)
    {
        char[] chars = s.toCharArray();

        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < chars.length; i++) {
            char c = chars[i];
            
            // 스택이 비어있으면 푸쉬해준다.
            if(stack.isEmpty()) stack.push(c);
            else {
                // 연속된 문자가 같은면 팝해준다.
                if (stack.peek() == c) {
                    stack.pop();
                } else {
                    stack.push(c);
                }
            }
        }

        return (stack.isEmpty())? 1 : 0;
    }
}