Development/Algorithm
[node.js] 백준 9012번 괄호
YUNA
2024. 2. 14. 22:12
1. 문제
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
2. 풀이 방법
첫번째 원소는 input의 행의 길이이다. shift로 이 원소를 배열에서 빼고, len변수에 담는다.
그리고 결과를 넣어줄 새 배열을 선언한다.
for 반복문을 통해서 각 행을 지정해줄 i를 선언하고 for ...of를 사용하여 각각의 행안에 있는 원소가 '('일 경우 1을 더하고 아닌경우 즉, ')'일 경우에는 -1을한다.
cnt의 결과가 0일 경우는 YES로, 0보다 작을 경우 break해서 멈추고 NO로 결과를 넣어줄 배열에 push로 넣어준다.
개행을 해서 결과를 합쳐주고 결과를 출력한다.
3. 코드
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const len = input.shift();
const result = [];
for (let i = 0; i < len; i++) {
let cnt = 0;
for (let s of input[i]) {
cnt += s === '(' ? 1 : -1;
if (cnt < 0) break;
}
result.push(cnt === 0 ? 'YES' : 'NO');
}
console.log(result.join('\n'));