개발/알고리즘(코딩테스트)

프로그래머스, 자바스크립트) 올바른 괄호

빔네모 2024. 11. 18. 10:38

문제

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

풀이

 

  • 여는 괄호 '('를 만나면 카운터를 증가
  • 닫는 괄호 ')'를 만나면 카운터를 감소.
  • 카운터가 음수가 되는 순간, "("가 ")"보다 많다는 것으로 문자열이 잘못 짝지어진 것이다.
    • 더이상 체크할 필요없이 false 처리

 

function solution(s) {
  //카운트 체크
  let count = 0

  for (const char of s) {
    char === '(' ? count++ : count--

    // 카운터가 음수가 되는 순간, 잘못된 상태
    if (count < 0) {
      return false
    }
  }

  //전체 스캔했는데 0이면 성공
  return count === 0
}