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

fsm12·2023년 8월 2일
0

프로그래머스

목록 보기
53/57
post-thumbnail

문제링크

문제 이해

[ 입력형태 / 조건 ]

s
문자열 | baabaa | 문자열의 길이는 1,000,000이하의 자연수, 문자열은 모두 소문자로 이루어져 있음

[ 문제 ]

짝지어 제거하기를 성공적으로 수행할 수 있는지 가능 여부를 1과 0으로 return

[ 풀이 ]

스택을 이용해 전 값과 들어올 값이 같다면 제거



코드

> [성공] 1차 시도 : 스택

  • 생각한 풀이 그대로 구현
class Solution{
    public int solution(String s){
        int N = s.length(), p = 0;
        int[] stack = new int[N];
        
        for(char c : s.toCharArray()){
            if(0<p && stack[p-1] == c){
                p-=1;
                continue;
            }
            stack[p++] = c;
        }
        return p==0?1:0;
    }
}



Tip : 스택을 다룰 때 pointer가 어느 자리에 위치해야하는지를 잘 확인해야 한다.

0개의 댓글