알고리즘

[백준 9012번] 괄호 - JavaScript

미누라니까요 2025. 1. 22. 11:16
728x90
반응형
SMALL

 

 

이 문제도 스택을 사용하여 이전 문제처럼 풀면 되겠다. 

이전 문제와 너무 동일하므로 자세한 설명은 생략한다.

 

 

소스 코드

const input = require('fs')
	.readFileSync('/dev/stdin')
	.toString()
	.trim()
	.split('\n');

const num = input.shift();

const results = [];

input.forEach((line) => {
	const stack = [];
	let isBalanced = true;

	for (const char of line) {
		if (char === '(' || char === '[') {
			stack.push(char);
		} else if (char === ')') {
			if (stack.pop() !== '(') {
				isBalanced = false;
				break;
			}
		} else if (char === ']') {
			if (stack.pop() !== '[') {
				isBalanced = false;
				break;
			}
		}
	}

	if (isBalanced && stack.length === 0) {
		results.push('YES');
	} else {
		results.push('NO');
	}
});

console.log(results.join('\n'));
728x90
반응형
LIST