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

최대 1 분 소요

문제

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/76502





코드


function checkStr(s){
    
    let stack = [];
    
    for(let i=0; i<s.length; i++){
        
    if(s[i]==='(' || s[i]==='[' || s[i]==='{') stack.push(s[i]);
    else{       
        switch(s[i]){
                case ')':
                if(stack[stack.length-1]==='(') stack.pop();
                break;
                
                case ']':
                if(stack[stack.length-1]==='[') stack.pop();
                break;
                
                case '}':
                if(stack[stack.length-1]==='{') stack.pop();
                break;
        }
    }
    }
    
    return stack.length === 0 ? true : false;
}

function solution(s) {
    
    if(s==='' || s.length%2!=0) return 0;
    
    let answer = 0;
    let count = s.length;
    s = s.split('');
    
    while(count>0){
        
        if(checkStr(s)) answer++;
        
        s.push(s.shift());
        
        count--;
    }
    return answer;
}


소감

난이도는 그리 높지않은 스택문제였는데 뭔가 효율이 구려보여서 나중에 다시 짜봐야겠다.