프로그래머스 짝지어 제거하기 (Java,자바)

jonghyukLee·2022년 6월 11일
0

이번에 풀어본 문제는
프로그래머스 짝지어 제거하기 입니다.

📕 문제 링크

❗️코드

import java.util.Stack;
class Solution
{
    public int solution(String s)
    {
        int answer = 1;
        int len = s.length();
        Stack<Character> stk = new Stack<>();

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

            if(!stk.isEmpty() && stk.peek() == c) stk.pop();
            else stk.push(c);

        }
        
        if(!stk.isEmpty()) answer = 0;
        return answer;
    }
}

📝 풀이

2개의 연속된 문자를 제거하고 남은 문자열을 합친다는 규칙이 존재할 때, 주어진 문자열을 완전히 제거할 수 있다면 1, 아니면 0을 반환하는 문제입니다.
문자 단위로 하나씩 탐색하면서, 이전 문자와 같으면 pop연산, 다르면 push연산을 진행합니다.
입력된 문자열을 모두 탐색했을 때, 스택이 비어있다면 1, 값이 남아있다면 0을 반환하면 해결됩니다.

📜 후기

스택을 활용하는 문제였습니다.

profile
머무르지 않기!

0개의 댓글