CS/Algorithm

백준 9012번

KJY 2021. 5. 17. 00:18

문제 9012번

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

사용 언어

javaScript

 

풀이

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
const count = Number(input[0]);

function judge(ps) {
  let openCount = 0;
  let closeCount = 0;
  for (let i in ps) {
    let target = ps[i];
    if (openCount === 0 && target === ')') {
      return 'NO';
    } else {
      if (target === '(') {
        openCount += 1;
      } else {
        closeCount += 1;
      }
      if (openCount === closeCount) {
        openCount = 0;
        closeCount = 0;
      }
    }
  }
  if (openCount === closeCount) {
    return 'YES';
  } else {
    return 'NO';
  }
}

for (i = 1; i < count + 1; i++) {
  ps = input[i];
  let yesOrNo = judge(ps);
  console.log(yesOrNo);
}

 

더 나은 방법..

열리는 괄호 일때는 push, 닫히는 괄호일때는 pop으로 구현하는게 더 나았을것 같다.