JavaScript

[프로그래머스 JavaScript] 올바른 괄호

운으로 2022. 9. 13. 21:20

 

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

<풀이>

function solution(s){
    const stack = new Array();
    
    for(let i of s){
        if(stack.length === 0){
            if(i==='('){
                stack.push('(');
            }else return false
        }
        else{
            if(i==='('){
                stack.push('(');
            }
            else{
                let check = stack.pop();
                if(check===')'){
                    return false
                }
            }
        }
    }
    
    return stack.length === 0 ? true : false
}

 

stack이 비었는데 ) 먼저 나오면 false 반환

스택이 있는데 현재 )인데 pop한 것도 ')' 이면 false반환 아닐 경우 append

마지막에 스택이 남아있을 경우에는 괄호가 올바르지 않으므로 false반환 비었을 경우 true 반환