반응형
문제
https://www.acmicpc.net/problem/9012
풀이
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let [n, ...arr] = fs.readFileSync(filePath).toString().trim().split("\n");
const N = +n;
const ps = arr.map((pair) => pair.split(""));
const answer = [];
for (let i = 0; i < N; i++) {
const stack = [];
for (let [idx, p] of ps[i].entries()) {
stack.push(p);
if (p === ")") {
// 첫 입력이 ')'이면 NO 출력
if (idx === 0) {
break;
}
// 이전 요소가 '('이면 '()' pop하기
if (stack.at(-2) === "(") {
stack.pop();
stack.pop();
}
}
}
if (stack.length === 0) answer.push("YES");
else answer.push("NO");
}
console.log(answer.join("\n"));
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[알고리즘/백준/1158] 요세푸스 문제 (0) | 2023.05.26 |
---|---|
[알고리즘/백준/18258] 큐 2 (0) | 2023.05.25 |
[알고리즘/백준/14940] 쉬운 최단거리(BFS, Nodejs) (1) | 2023.05.24 |
[알고리즘/백준/10828] 스택(자료구조) (0) | 2023.05.24 |
[알고리즘/백준/16918] 봄버맨(BFS, Nodejs) (4) | 2023.05.23 |