Javascript # 알고리즘 [balancedBrackets]

kdobro_dev·2022년 2월 15일
0

Algorithm

목록 보기
6/7
post-thumbnail

문제

문자열을 입력받아 문자열 내의 모든 괄호의 짝이 맞는지 여부를 리턴해야 합니다.

  • 괄호의 종류를 단 한가지로 한정합니다.
  • 괄호의 종류를 늘려 모든 종류의 괄호에도 작동하도록 합니다.
  • 괄호를 제외한 문자열이 포함된 경우에도 작동하도록 합니다.

입출력 예시

let output = balancedBrackets('(');
console.log(output); // // -> false

output = balancedBrackets('()');
console.log(output); // --> true

우선 내가 작성한 코드는 아래와 같다.
스택을 사용한 것인데, '(' 모양과 ')'모양을 각각 변수로 지정해주는 것으로 시작을 하였다.
for문을 사용해서 입력받는 문자열의 길이만큼 반복을 해서 '(' 모양이 있으면 stack에 넣어준다.
만약 반대 모양인 ')'이 있다면, stack에서 하나씩 빼준다.

const balancedBrackets = function (str) {
  const stack = [];
  const front = '(';
  const back = ')';

  for (let i = 0; i < str.length; i++) {
    if (str[i] === front) { stack.push(str[i]); }
    else if (str[i] === back) {
      const popped = stack.pop();
      if (popped !== front) { return false; }
    }
  }

  return stack.length === 0;
};
profile
do your best at any moment

0개의 댓글