[ 프로그래머스 ] 12973 짝지어 제거하기

codesver·2023년 7월 17일
0

Programmers

목록 보기
7/30
post-thumbnail

📌 Problem

문자열이 주어졌을 때 같은 문자가 붙어 있는 경우에는 제거한다. 예를 들어 baab인 경우는 aa가 짝지어지기 때문에 제거되어 bb가 된다. bb 또한 다시 짝지어지기 때문에 제거된다. 이렇게 모든 문자열이 짝지어져서 제거되면 1을 출력되고 아니면 0이 된다.

📌 Solution

문자열의 앞 문자부터 차례대로 탐색하면서 Stack에 삽입된다. 만약 Stack의 top과 현재 문자가 같다면 stack을 pop한다. 만약 stack이 비어있거나 top과 다른 문자이면 push한다. 마지막에 stack의 크기를 통해 문자열을 모두 제거하였는지 확인한다.

📌 Code

public int solution(String s) {
    return new Stack<Character>() {{
        for (char ch : s.toCharArray())
            if (isEmpty() || peek() != ch) push(ch);
            else if (peek() == ch) pop();
    }}.isEmpty() ? 1 : 0;
}
profile
Hello, Devs!

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기