2022/02/05) 2. 괄호문자제거 [자료구조(스택, 큐)]

굥굥이·2022년 2월 5일
0
post-thumbnail

1. 문제

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

2. 해결 방법

  1. 앞에서 배운대로 하면 된다.
  2. while문에 들어가는 조건 한 번 이해해보자. while(stack.pop() !== '(');라는 코드가 있다면, (는 pop이 될까 안될까? 정답은 (이 pop이 된다. 그 이유는 pop은 스택에서 자료를 하나 빼내는 함수이므로, 저 조건식에서는 먼저 pop한 후 비교를 하게 된다.

3. 정답

        <script>
            function solution(s){  
                let answer;
                let stack=[];
                for(let x of s){
                    if(x===')'){
                        while(stack.pop()!=='(');
                    }
                    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));
        </script>

4. 내 코드와 비교 그리고 반성

)를 제외한 것들은 다 push하고, )를 만나면 )랑 세트인 (까지 pop해야 겠다고 생각하고 코드를 짰는데 정작 pop하는 조건을 짜지 못했다. 언제쯤이면 능수능란해지려나.

profile
아자아자 파이띵굥!

0개의 댓글