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

hhkim·2023년 8월 1일
0

Algorithm - JavaScript

목록 보기
86/188
post-thumbnail

풀이 과정

  1. 빈 배열 만들기(스택)
  2. 각 문자에 대해 반복
  3. 현재 문자와 배열 마지막 요소가 같으면 배열 마지막 요소 제거: pop()
    아니면 배열에 담기: push()
  4. 2번이 끝나고 배열에 요소가 있으면 0, 없으면 1 리턴

코드

function solution(s) {
  const stack = [];
  for (const c of s) {
    if (stack.at(-1) === c) stack.pop();
    else stack.push(c);
  }
  return stack.length ? 0 : 1;
}

🤔

처음에 일차원적으로 반복문 돌다가 연속되는 문자 나오면 replaceAll() 이런 식으로 했는데 당연히 효율성을 통과 못했다. (2중 반복문이라 O(n^2)니까...)
스택을 쓰면 더 간단히 풀 수 있는 문제였다.
괄호 어쩌고 등등 짝 지어서 없앤다 하면 스택!!

0개의 댓글