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

urzi·2022년 4월 4일
0

PS

목록 보기
12/36

문제

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

알고리즘

스택

풀이

맨 처음에 스택에 첫번째 문자를 넣고 같은게 나올때까지 계속 스택에 문자를 쌓아준다.
연속된 문자가 두개 나오면 제거하고 계속 비교를 한다.
문자열의 끝까지 갈 때 까지 비교하고 스택이 비어있으면 1, 아니면 0을 리턴한다.

코드

import java.util.*;

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

        for (int i = 0; i < s.length(); i++) {
            if (!stack.isEmpty() && s.charAt(i) == stack.peek()) {
                stack.pop();
            } else {
                stack.push(s.charAt(i));
            }
        }

        if (stack.isEmpty()) {
            answer = 1;
        } else {
            answer = 0;
        }

        return answer;
    }
}
profile
Back-end Developer

0개의 댓글