| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 자바스크립트 딥다이브
- 2217 node.js
- Javascript
- 14655 nodejs
- 모던자바스크립트DeepDive
- 자바스크립트 함수
- 1541 node.js
- const
- 1931 node.js
- 21313 nodejs
- 백준21313
- 노마드스터디
- 11047 node.js
- 1026 node.js
- flex box
- 코딩
- 1789 node.js
- 자바스크립트 일급객체
- 노개북
- 모던자바스크립트 딥다이브
- 백준1789
- 백준1026
- 노마드북클럽
- IT5분잡학사전
- 11399 node.js
- CSS flex
- 백준25176
- 개인프로젝트
- 모던자바스크립트
- 개발자
Archives
- Today
- Total
캐또's coding
9012 - 괄호 - node.js 본문
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
해당 문제는 스택으로도 해결 가능한 문제다. 괄호 (와 )가 주어질 때 맞아 떨어지는지를 확인하는 문제로
스택을 사용해서 (를 하나씩 넣고 )가 올때 (를 하나씩 빼주면 된다. 만약 (가 없는데 )가 오면 대응되지 않는 괄호이므로 NO로 바로 가면 된다.
여기서는 숫자로 + -하는 것으로 해결했다
const fs = require("fs");
let [n, ...input] = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const result = [];
let stack = 0;
//스택을 숫자 기본으로 둔다.
for (i = 0; i < n; i++) {
let arr = input[i].trim().split("");
//각 줄을 한 글자 단위로 쪼개준다.
for (j = 0; j <= arr.length; j++) {
if (stack < 0) break;
//만약 stack이 음수가 되면 멈춘다 => NO가 되도록
if (arr[j] === "(") {
stack += 1;
// (가 들어왔을 때 +1을 한다.
} else if (arr[j] === ")") {
stack -= 1;
// )가 들어 왔을 때 -1을 한다.
}
}
if (stack === 0) {
result.push("YES");
//만약 스택이 0이라면 YES다.
} else {
result.push("NO");
//만약 그렇지 않은 경우라면 모두 NO다.
}
stack = 0;
//한 줄 반복문을 돌고나서 stack을 초기화한다.
result.push("\n");
//결과값에 줄넘김을 넣는다.
}
console.log(result.join(""));
//결과 출력하면 끝
만약 같은 문제를 스택으로 해결하려면, 스택에 (를 넣고 )가 왔을 때 빼기, 만약 스택이 비었는데 )가 왔다면 바로 NO라는 식으로 코드를 수정하면 된다.
'기초 공부 > 백준 문제 풀이' 카테고리의 다른 글
| 1874 - 스택 수열 - node.js (0) | 2023.01.24 |
|---|---|
| 9093 - 단어 뒤집기 - node.js (0) | 2023.01.22 |
| 10828 - 스택 - node.js (0) | 2023.01.21 |
| 24060 - 알고리즘 수업 - node.js (0) | 2023.01.20 |
| 25501 - 재귀의 귀재 - node.js (0) | 2023.01.19 |
Comments