프로그래머스 올바른 괄호

2023. 10. 2. 18:51개발공부/알고리즘

'('가 나오면 1을더하고, ')'가나오면 1을 빼줘서 answer를 0으로 만들어준다. 어떤 경우에든 ')'가 먼저나오면 return false를 해야함을 고려한 나의 코드

function solution(s){
    let answer = 0;
    s.split('').map((i, idx) =>  {
        if (answer == -1) {
            return false;
        }
        if (i == '(') {
            answer+=1;
        };
        if (i==')') {
            answer-=1;
        } 
    })
    return answer == 0? true:false;
}

다른 사람들의 코드를 보던 중 match를 이용한 사람의 코드 발견

function is_pair(s){
  var result = s.match(/(\(|\))/g);
  return result[0] == '(' && result.length % 2 == 0 ? true : false
}

match는 정규식과 매치되는 부분을 검색하는 메서드이다. 라고 MDN이 그런다😅

'('로 시작해 ')'로 끝나는 string을 모두 검색해서 result에 넣고 result의 길이가 짝수라면 true그렇지 않다면 false