입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.
입력예제 1
(A(BC)D)EF(G(H)(IJ)K)LM(N)
출력예제 1
EFLM
function solution(s) {
let answer;
let stack = []; //스택 배열 생성
// for of으로 배열 요소 반복문 사용
for (let x of s) {
// 만약 x 가 ")" 라면
if (x === ")") {
// stack.pop() 이 "(" 가 될때까지 while문을 사용해 stack.pop()으로 stack 배열 마지막 요소 제거
while (stack.pop() !== "(");
}
else stack.push(x); // x가 ")"이 아니라면 stack 배열에 x 요소 삽입
}
answer = stack.join(''); // stack 배열 join() 사용해 스트링화
return answer;
}
let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
'알고리즘' 카테고리의 다른 글
후위식연산(postfix) (0) | 2022.12.04 |
---|---|
크레인 인형뽑기(카카오 기출) (2) | 2022.12.02 |
올바른 괄호(스택) - 자바스크립트 (0) | 2022.11.27 |
아나그램(자바스크립트) (0) | 2022.10.11 |
학급 회장(해쉬) (0) | 2022.09.18 |