코딩테스트

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

셈인 2023. 7. 16. 19:01

📄 문제

Lv. 2 2017 팁스타운 짝지어 제거하기

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


🔍 문제 접근

💡 항상 2개씩 제거되어야 하므로 s의 길이가 홀수인 경우에는 항상 0으로 리턴한다.
💡 Stack을 사용해 문제를 해결한다.
     다른 방법으로 접근했다가 효율성 테스트를 통과하지 못했다..😥

 

👉 입출력 예 #1으로 Stack 이해하기


📝 문제 풀이

function solution(s) {
    if (s.length % 2) {
        return 0;
    }

    const stack = [];

    for (let i = 0; i < s.length; i++) {
        const char = s[i];        
        
        if (char === stack[stack.length - 1]) {
            stack.pop();
        } else {
            stack.push(char);
        }
    }
    
    return stack.length ? 0 : 1;
}