한 걸음씩

[프로그래머스][JS] 짝지어 제거하기 ✅ 본문

Programmers

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

winter17 2023. 7. 21. 11:53

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

 

프로그래머스

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

programmers.co.kr

풀이 과정

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

s문자열에서 요소를 하나씩 꺼내 stack 빈배열에 하나씩 넣는데(push) stack배열의 마지막 요소와 마지막 앞 요소가 같다면 pop을 두 번하여 같은 문자를 꺼낸다.

마지막에 삼항 조건 연산자를 사용하여 stack의 길이가 0이면 1을 반환하고, 아니라면 0을 반환한다. 


리뷰

스택으로 풀면 정말 쉽게 풀리는 문제인데 스택으로 풀 생각을 못하고 있다가 질문하기에서 스택으로 풀어봐라는 힌트를 보고 풀었다.