올바른 괄호

성석민·2022년 5월 5일
1

알고리즘

목록 보기
40/72
post-thumbnail

github 전체코드

문제

괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력

풀이 과정

  1. 주어진 괄호가 ( 일 때 stack에 push
  2. 주어진 괄호가 ) 일 때 stack의 길이가 0이면 올바른 괄호가 아니기 때문에 NO를 리턴
  3. 주어진 괄호가 ) 일 때 stack의 길이가 0보다 크면 stack에 pop -> 맨 마지막 요소 빼기
  4. stack의 길이가 0이면 올바른 괄호, 그렇지 않으면 올바르지 않은 괄호
const solutionA = (brackets) => {
  const stack = [];

  for (const bracket of brackets) {
    if (bracket === '(') stack.push(bracket);
    else {
      if (stack.length === 0) return 'NO';
      stack.pop();
    }
  }

  return stack.length === 0 ? 'YES' : 'NO';
};

const testA = solutionA('(()(()))(()');
console.log(testA);

틀린 부분이 있거나 보충해야 할 내용이 있다면 댓글이나 DM(sungstonemin)으로 알려주시면 감사하겠습니다😄

profile
기록하는 개발자

0개의 댓글