프로그래밍/알고리즘 풀이
[node.js] 균형잡힌 세상 ( 백준 4949번 )
카카수(kakasoo)
2021. 3. 30. 11:05
반응형
처음에는 대괄호, 소괄호를 따로 따로 배열을 만들어서 관리해 주었는데, 예외가 있었다.
[(]) 형태로 들어올 때 제대로 동작하지 않았다.
그래서 배열을 하나로 합쳐줬더니 해결되었다.
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.on("line", (line) => {
if (line === ".") {
rl.close();
}
main(line);
}).on("close", () => {
process.exit();
});
/**
*
* @param {string} line
*/
const main = (line) => {
const bracket = line
.split("")
.filter((el) => el === "(" || el === ")" || el === "[" || el === "]");
const big = [];
if (bracket.length % 2 !== 0) {
console.log("no");
return;
}
// console.log(bracket);
for (let i = 0; i < bracket.length; i++) {
const cur = bracket[i];
if (cur === "[") {
big.push(cur);
// console.log("big : ", big);
}
if (cur === "]") {
if (big[big.length - 1] === "[") {
big.pop();
// console.log("big : ", big);
} else {
big.push(cur);
// console.log("big : ", big);
}
}
if (cur === "(") {
big.push(cur);
// console.log("big : ", big);
}
if (cur === ")") {
if (big[big.length - 1] === "(") {
big.pop();
// console.log("big : ", big);
} else {
big.push(cur);
// console.log("big : ", big);
}
}
}
if (!big.length && !big.length) {
console.log("yes");
} else {
console.log("no");
}
};
반응형