미누에요
[백준 4949번] 균형잡힌 세상 - JavaScript 본문
728x90
반응형
SMALL
이 문제는 학부 자료구조 시간에 배웠던 내용인듯하다.
스택(Stack)을 사용하여 괄호를 검사하는 문제인데, 간단히 설명하자면 문장을 순서대로 토큰으로 탐색하면서 여는 괄호('(', '[')가 오면 스택에 저장하고(push), 닫는 괄호(')', ']')가 오면 스택에 있던 값을 꺼내(pop) 여는 괄호인지 확인하면 된다.
아 그리고, 마지막의 .은 종료를 시키도록 작성해야한다.(문제에서 종료 조건으로 설정되어있음)
소스 코드
const input = require('fs')
.readFileSync('/dev/stdin')
.toString()
.trim()
.split('\n');
const results = [];
input.forEach((line) => {
if (line === '.') return;
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
'알고리즘' 카테고리의 다른 글
[백준 10773번] 제로 - JavaScript (0) | 2025.01.23 |
---|---|
[백준 9012번] 괄호 - JavaScript (0) | 2025.01.22 |
[백준 2164번] 카드 2 - JavaScript (0) | 2025.01.20 |
[백준 1920번] 수 찾기 - JavaScript (0) | 2025.01.19 |
[백준 11651번] 좌표 정렬하기 2 - JavaScript (1) | 2025.01.18 |