[Algorithm] 괄호문자제거 (javaScript)

swing·2023년 7월 12일
0

[Algorithm]

목록 보기
67/96

문제

입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.

입력설명

첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.

출력설명

남은 문자만 출력한다.

입출력예제

입력
(A(BC)D)EF(G(H)(IJ)K)LM(N)

출력
EFLM

문제 해결

const solution = (str) => {
  const stack = [];

  for (let x of str) {
    // 닫는 괄호를 만난다면, 여는 괄호를 만날때까지 stack.pop을 한다.
    // stack.pop()이 여는 괄호라면 while문 종료.
    if (x === ")") {
      while (stack.pop() !== "(");
    }
    // 여는 괄호이거나, 문자면 무조건 stack에 push한다.
    else stack.push(x);
  }

  return stack.join("");
};

const answer = solution("(A(BC)D)EF(G(H)(IJ)K)LM(N)");
console.log(answer); // EFLM
profile
if(기록📝) 성장🌱

0개의 댓글