DevLog:-)

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

알고리즘/프로그래머스

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

hyeon200 2023. 9. 6. 23:26
반응형

문제

 

올바른 괄호

 

프로그래머스

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

programmers.co.kr

function solution(s){
    
    let stackCount =0;
    for (let i of s){  //문자열 각 문자 분석(인덱스 접근 보다 효율성 올라감) 
        if(i == "("){stackCount+=1;}
        else{stackCount-=1;}
        // i==="(" ? stackCount++ : stackCount--;
        if(stackCount < 0){return false;}
    }
    if(stackCount!=0){return false;}
    else {return true;}
    //console.log(typeof(answer)); ->boolean
}

💡아이디어

"(" 일 때 stackCount에 +1을 한다. 

")" 일때 stackCount에 -1을 한다. 

 

  • ")"가 먼저 올 때 : stackCount가 음수가 된다 -> false
  • "( )"짝이 잘 맞을 때 : 최종 stackCount가 0이 된다. -> true
  • 짝이 안 맞을 때 : 최종 stackCount가 0이 안된다. -> false

 

 

 

✅checkpoint

스택이란? -데이터 저장을 위한 자료구조
-LIFO(Last In First Out, 후입선출) 구조
-삽입과 삭제가 한쪽에서 이루어짐
for(let i of arr){} 문자열에 각 문자 접근 방법(인덱스 접근 보다 효율성이 높다. )
a==="a" ? count++ : count--; 조건 ? 참 : 거짓;

 

반응형