seunghyun Note
[백준] 4949번 : 균형잡힌 세상(스택 공부 부수기) with JS 본문
728x90
반응형
링크 : https://www.acmicpc.net/problem/4949
문제 풀이
괄호가 한 개가 아닌 여러 개일 때 신경 쓸 것이 많다.
vps function에서 조건을 여러가지 걸고 아닐 경우 바로 false로 return 하기
main에서는 vps function이 true일 경우와 문자열의 마지막이 '.'일 경우 yes로 리턴해준다.
const fs = require("fs");
//const input = require("fs").readFileSync("/dev/stdin").toString().trim().split("\n");
const input = fs.readFileSync("예제.txt").toString().trim().split("\n");
let ans = [];
let i = 0;
while (input[i] !== ".") {
ans.push(
vps(input[i]) && input[i].charAt(input[i].length - 1) === "." ? "yes" : "no"
);
i++;
}
console.log(ans.join("\n"));
function vps(str) {
let stack = [];
for (let value of str) {
if (value === "[" || value === "(") stack.push(value);
else if (value === "]")
if (stack[stack.length - 1] === "[") {
stack.pop();
} else return false;
else if (value === ")")
if (stack[stack.length - 1] === "(") {
stack.pop();
} else return false;
}
return stack.length === 0;
}
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 배열의 원소 삭제하기 with JS (0) | 2024.01.23 |
---|---|
[백준] 12789번 : 도키도키 간식드리미(스택 공부 부수기) with JS (0) | 2024.01.20 |
[백준] 9012번 : 괄호 (스택 공부 부수기) with JS (0) | 2024.01.18 |
[백준] 10773 : 제로 (스택 공부 부수기) with JS (1) | 2024.01.18 |
[백준] 28278번 : 스택 2 (스택 공부 부수기) with JS (0) | 2024.01.18 |