[프로그래머스 level2] 괄호 회전하기

김예지·2021년 10월 21일
0

문제

https://programmers.co.kr/learn/courses/30/lessons/76502


문제 풀이

코드

function solution(s) {
    let cnt=0;
    s=s.split('');
    for(let i=0; i<s.length; i++){
        let tmp=s.shift();
        s.push(tmp);
        
        let stack=[];
        for(let l=0; l<s.length; l++){
            if(s[l]==='(' || s[l]==='[' || s[l]==='{'){
                stack.push(s[l]);
                
            }
            else if(s[l]===')'){
                if(stack.length===0){
                    stack.push(0); //break된 후, cnt++이 되는 것을 막음
                    break;
                }
                else if(stack[stack.length-1]==='(') stack.pop();
            }
            else if(s[l]===']'){
                if(stack.length===0){
                    stack.push(0);
                    break;
                }
                else if(stack[stack.length-1]=='[') stack.pop();
            }
            else if(s[l]==='}'){
                if(stack.length===0){
                    stack.push(0);
                    break;
                }
                else if(stack[stack.length-1]=='{') stack.pop();
            }
        }
        if(!stack.length) cnt++;
    }
    return cnt;
}

예전에 괄호 변환 문제를 푼 경험이 있어서, 생각보다 쉽게 풀린문제! 시간초과 되지 않을까 조마조마 했는데 다행히 정답!
응용할 수 있는 능력을 가졌다!👏🏻

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글