[콭] 올바른 괄호(스택/큐)

강원지·2023년 1월 28일
0

코테 다시보기

목록 보기
6/22

코딩테스트 연습
스택/큐
올바른 괄호

문제

주어진 문자열에서 괄호가 알맞게 짝지어지는 경우 true를, 아닌 경우 false를 반환하라.

로직

'('의 차례에는 push를 하고 ')'는 pop을 하여 문자열을 모두 확인했을 때 스택에 아무것도 없다면 짝이 맞다고 볼 수 있음.
')'이 맨 앞이면 틀림.

풀이

function solution(s){ 
    let stack=[]; 
    if(s[0]===')') return false
    for(e of s){
        if(e==='(') stack.push(e);
        else if(e===')'){
            stack.pop();
            
        }
    }
    if(stack.length!==0) return false; 
    return true;
}

더 나은 풀이

function solution(s){ 
    let cnt=0;
    for(e of s){
        cnt+=e==='('?1:-1;
        if(cnt<0) return false;
    }
    return cnt===0?true:false;
    
}

알아두기

  1. foreach문은 문자열x, for of, in문은 문자열에서 사용가능

0개의 댓글