섭스토리

백준 9012번 <괄호> 본문

백준 풀이 🍪

백준 9012번 <괄호>

섭웨이 2022. 8. 26. 01:34

백준 9012번 <괄호>

실버 4

https://www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

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

let solve = function (array) {
    let answer = [];
    for (let i of array) {
        if (i == '(') {
            answer.push(i);
        } else {
            if (answer[answer.length - 1] == '(') {
                answer.pop();
            } else {
                answer.push(i);
            }
        }
    }
    if (answer.length == false) {
        console.log("YES");
    } else {
        console.log("NO");
    }
}

for (let i of input) {
    solve(i);
}

사실 저번에 풀었던 문제랑 비슷해서 어려울 건 없었어요.

https://seobcoding.tistory.com/20

 

백준 4949번 <균형잡힌 세상>

백준 4949번 <균형잡힌 세상> 실버 4 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")..

seobcoding.tistory.com

그때랑 거의 비슷하게 코드를 짰는데 풀고 나서 보니깐 이 문제는 굳이 이렇게 안 풀어도 되겠더라구요.

 

 

다른 분이 짜신 코드입니다.

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

for (var i = 1; i <= input[0]; i++) {
    var temp = input[i];
    while (temp.indexOf("()") >= 0) {
        temp = temp.replace("()", "");
    }
    if (temp === "") {
        console.log("YES");
    } else {
        console.log("NO");
    }
}

각각의 테스트 케이스 문자열을 temp라는 변수로 반복문 내에서 선언합니다.

그리고 문자열 내에 "()"를 찾아 replace()메서드로 삭제해줍니다.

그리고 이 과정을 문자열 내에 "()" 가 모두 사라질 때까지 반복해줍니다.

 

만약에 temp 가 "(()()))())" 라면

한 번 삭제를 거치고 나서는 "(()))())" --> "())())" --> ")())"--> "))"

이 순서를 거쳐서 최종적으로

temp == "))" 가 반환됩니다.

 

그렇다면 이 문자열은 VPS가 아니기 때문에 모두 삭제가 안된 것이고, "NO"를 출력하게 됩니다.

 

아 참! 드디어 실버 5 진입!! 

골드를 향해 가봅니다.

헤헤헤헤헤후후후후

 

'백준 풀이 🍪' 카테고리의 다른 글

백준 3273번 <두 수의 합>  (0) 2022.09.28
백준 10828번 <스택>  (0) 2022.08.27
백준 10814번 <나이순 정렬>  (0) 2022.08.25
백준 11866번 <요세푸스 문제 0>  (0) 2022.08.25
백준 4949번 <균형잡힌 세상>  (0) 2022.08.19