[프로그래머스] Lv.2 짝지어 제거하기.java

hgghfgf·2023년 5월 12일
0

프로그래머스

목록 보기
58/227

짝지어 제거하기.java

import java.util.Stack;

class Solution {
    public int solution(String s) {
        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            if (!stack.empty() && stack.peek() == c) {
                stack.pop();
            } else {
                stack.push(c);
            }
        }

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

문자열에서 짝지어 제거하기를 수행하는 방법은 스택을 사용하면 됩니다. 스택을 이용하여 문자열을 순회하며, 스택의 top에 있는 문자와 현재 문자가 같으면 스택의 top을 제거하고 현재 문자를 스택에 push 합니다. 이를 문자열을 끝까지 순회할 때까지 반복합니다. 만약 문자열을 모두 제거하면 스택은 비어있게 됩니다. 따라서, 스택이 비어있으면 문자열을 모두 제거할 수 있는 것이고, 스택에 남아있는 문자가 있다면 문자열을 모두 제거할 수 없는 것입니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글