programmers

[Programmers Level 2 스택] 올바른 괄호 Javascript

냠냠맨 2022. 12. 12. 20:28

⚡문제정보

 

 

스택을 이용하면 쉽게 풀 수 있는 문제입니다.

leetcode에서 비슷한 문제를 풀었는데 그것보다 조건이 좀 더 쉽네요!

 


 

🙄제한사항

문자열 s의 길이 : 100,000 이하의 자연수
문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

 


 

🔍접근방법

 

stack을 구현하기 위해 값을 저장해줄 변수를 선언하고

for문을 순회하며 문자열이 '('인 경우 push

')' 인 경우 pop해준다.

 


 

 

🔍나의 풀이

 

function solution(s){
    let stack = []
    if(s[0] == ")") return false
    
    for(i=0 ; i<s.length ; i++) {
        if(s[i] == "(" ) {
            stack.push(s[i])
        }
        else if(s[i] == ")") {
            stack.pop()
        }
    }
    return stack.length != 0 ? false : true
}

 

간단히 구현할 수 있었습니다.

밑은 코드 설명입니다.

 

function solution(s){
    let stack = []
    //stack 시켜줄 배열 선언
    if(s[0] == ")") return false
    //시작이 닫힌괄호로 시작하면 false
    
    for(i=0 ; i<s.length ; i++) {
        if(s[i] == "(" ) {
            stack.push(s[i])
        }
        //(인 경우 stack에 push
        else if(s[i] == ")") {
            stack.pop()
        }
        // )인 경우 pop
    }
    return stack.length != 0 ? false : true
    //모든 괄호가 잘 닫혔다면 stack의 길이는 0이어야함
}
반응형