Level2 - 괄호 회전하기

손대중·2022년 6월 28일
0

문제 설명 및 링크

https://programmers.co.kr/learn/courses/30/lessons/76502?language=javascript

나의 풀이

stack 을 쓸 줄 아느냐를 물어보는 듯?? 문제 그대로 풀면 된다.

코드

모든 프로그래머스 문제 관련 코드들은 GitHub 링크 에 있음.

const isOk = s => {
    const stack = [];
    
    for (let i = 0; i < s.length; i++) {
        if (s[i] === ')' || s[i] === ']' || s[i] === '}') {
            const last = stack.pop();
            
            if (!last 
                || (s[i] === ')' && last !== '(') 
                || (s[i] === ']' && last !== '[') 
                || (s[i] === '}' && last !== '{') ) {
                return false;
            }
        } else {
            stack.push(s[i]);
        }
    }
    
    return stack.length === 0;
};

function solution(s) {
    
    let result = 0;
    
    for (let i = 0; i < s.length; i++) {
        if (isOk(s)) {
            result++;
        }
        
        s = s.slice(1) + s[0];
    }
    
    return result;
}

0개의 댓글