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

dongwon·2021년 5월 2일
0

프로그래머스-Level 2

목록 보기
13/33

문제

올바른 괄호 https://programmers.co.kr/learn/courses/30/lessons/12909

해결

  1. 스택 사용
    stack으로 하나씩 넣고 짝이 맞으면 pop() x 2번.
    stack의 길이가 0이면 true 아니면 false.
  2. 개수 이용
    닫는 괄호 )가 맨 앞에 나오면 무조건 false 입니다.
    변수를 설정해 (는 +1, )는 -1씩 설정할 때, 변수가 음수가 나오면 닫힌 괄호 )가 맨 앞에 나온다는 뜻
    변수가 0 이면 true 아니면 false 입니다.

코드

스택 이용

function solution(s) {
  const stack = [];
  s = s.split("");

  if (s[0] === ")") return false;

  for (let i = 0; i < s.length; i++) {
    stack.push(s[i]);

    if (stack[stack.length - 2] === "(" && stack[stack.length - 1] === ")") {
      stack.pop();
      stack.pop();
    }
  }

  return stack.length === 0 ? true : false;
}

개수 이용

function solution(s) {
  s = s.split("");

  let checkNum = 0;

  for (let i = 0; i < s.length; i++) {
    if (checkNum < 0) return false;

    if (s[i] === "(") checkNum++;
    else if (s[i] === ")") checkNum--;
  }

  return checkNum === 0 ? true : false;
}
profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글