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

김민수·2023년 9월 25일

프로그래머스

목록 보기
2/7
post-thumbnail

📝 [Lv2 올바른 괄호]

입력

'(' 또는 ')' 로만 이루어진 문자열 s

제한

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

출력

문자열 s가 올바른 괄호 = true , 올바르지 않은 괄호 = false
올바른 괄호 = '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다

풀이

function solution(s){
    let cnt = 0;
    for(let i = 0 ; i < s.length; i++){
        cnt = s[i] == '(' ? cnt + 1 : cnt - 1;
        if(cnt < 0) return false;
    }
    
    return cnt === 0 ? true : false;
}

설명

  1. Stack 과 같은 역할인 cnt 를 선언한다.
  2. s에 대해 반복문을 돌리며, (일 경우 cnt +1, )일 경우 cnt -1을 한다.
  3. 만일 )로 시작하고 cnt 가 -1이 되는 순간은 뒤가 어떠한 괄호가 나와도 올바른 괄호가 될 수 없다.

0개의 댓글