[알고리즘]section 6-2_괄호문자제거

Yul·2022년 5월 10일
0

Algorithm

목록 보기
2/9

문제

괄호문자제거

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

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

  • 출력예제
    EFLM

문제풀이

  1. 닫는 괄호(')') 나오기 전 까지 stack에 push().
  2. 닫는 괄호가 나오면 stack에 넣었던 문자열 중 여는 괄호('(')까지 모두 pop().
    • while(stack.pop() !== '(')는 stack 에서 '(' 가 아닐 때까지 pop()으로 지움. 닫는 괄호('(')를 만나면 false 되서 while문 종료

코드

function solution(s) {
  let answer;
  let stack = [];

  for(x of s){
    if(x === ')') {
      while(stack.pop() !== '(');
    } else stack.push(x);
  }
  answer = stack.join('');
  return answer;
}

let a = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(a));

노트

서술로 풀면 어떻게 해야할지 이해가 가는데 코드로 구현하는게 아직은 익숙하지 않다.

출처: https://inf.run/CPjy

profile
자바스크립트 도장깨기👊

0개의 댓글