ALGORITHM/Inflearn
자료구조(스택) - 2. 괄호문자제거
Harimad
2022. 2. 28. 16:58

문제
문자열에서 소괄호( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램 작성하시오.
입력예제 1
(A(BC)D)EF(G(H)(IJ)K)LM(N)
출력예제 1
EFLM
풀이
반복문을 통해서 문자열 요소를 탐색한다.
문자열에서 소괄호중에 ( 인 경우에는 stack 배열에 push를 해주고 알파벳인 경우에도 push를 해준다.
소괄호가 ) 인경우에는 반복문을 )가 나올때까지 돌면서 pop을 해준다.



코드
function solution(s){
let answer;
let stack = [];
for (let x of s) {
if (x === '(') stack.push(x);
else if (x === ')') {
// while(true) {
// let tmp = stack.pop();
// if (tmp === '(') break;
// }
while(stack.pop() !== '('){} //위의 4문장과 같음
} else {
stack.push(x);
}
}
answer = stack.join('');
return answer;
}
let str="(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
출처
자바스크립트 알고리즘 문제풀이(코딩테스트 대비) - 인프런 | 강의
자바스크립트(JavaScript)로 코딩테스트를 준비하시는 분을 위한 강좌입니다. 재미있게 풀 수 있는 기초 단계 문제부터 고급 알고리즘까지 단계별로 차근차근 배우도록 설계된 강좌입니다., - 강의
www.inflearn.com