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

TED·2024년 3월 27일
0

Javascript CodingTest

목록 보기
62/63

<오늘의 문제>

짝지어 제거하기

function solution(s) {
    let stack = [];
    
    for (let char of s) {
        // 스택의 마지막 요소와 현재 문자가 동일한지 확인
        if (stack.length > 0 && stack[stack.length - 1] === char) {
            stack.pop(); // 스택에서 제거
        } else {
            stack.push(char); // 스택에 추가
        }
    }
    
    // 스택이 비어있다면 모든 문자를 제거한 것이므로 1 반환, 그렇지 않으면 0 반환
    return stack.length === 0 ? 1 : 0;
}
  • 빈 스택을 초기화한다
    문자열 s의 각 문자에 대해 순회를 시작하자~~!
    스택이 비어있지 않고, 스택의 마지막 요소가 현재 문자와 같으면, 스택에서 해당 요소를 제거.
    만약 스택의 마지막 요소가 현재 문자와 다르면, 현재 문자를 스택에 추가.
    문자열의 모든 문자에 대해 이 과정을 반복한 후, 스택이 비어있다면 문자열을 모두 제거한 것이므로 1을 반환하고, 아니면 0을 반환.
    예를 들어, s가 "baabaa"인 경우 위 함수는 1을 반환하고, "cdcd"인 경우는 0을 반환.

취업하고싶다

profile
컴맹 개발 입문자

0개의 댓글