괄호문자 제거

heejung·2022년 1월 10일
0

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

▣ 입력설명

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

▣ 출력설명

남은 문자만 출력한다.

▣ 입력예제 1

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

▣ 출력예제 1

EFLM

문제 풀이

여는괄호나 문자열이면 싹 다 stack에 넣고,
닫는 괄호를 만나면 이전에 있던 문자열+여는괄호까지 다 pop 해주면 된다.

function solution(str) {
    let stack = [];
    for (let x of str) {
      	// 닫는괄호면 여는괄호 pop할때까지 반복
        if (x === ')') { 
            while (stack.pop() !== '(');
          // 여는 괄호 or 문자열이면 push
        } else stack.push(x);
    }
    return stack.join('');
}

solution('(A(BC)D)EF(G(H)(IJ)K)LM(N)');

profile
프론트엔드 공부 기록

0개의 댓글