본문 바로가기
알고리즘/백준

C++ 백준 BOJ 9012 괄호

by parkkingcar 2022. 7. 25.

 

입력받은 문자열이 바르게 구성된 괄호 문자열(VPS)인지 판단하는 문제입니다.

 

 

 

 

9012번: 괄호

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

www.acmicpc.net

 

#include<iostream>
#include<stack>

using namespace std;

void checkVPS(string p){
    stack<char> checkP;
    for(int i = 0; i < p.size(); i++){
        if(p[i]=='('){
            checkP.push('(');
        }
        else{
            if(checkP.empty()){
                checkP.push(')');
            }
            else if(checkP.top() == '('){
                checkP.pop();
            }
        }
    }
    if(checkP.empty()){
        cout << "YES" << endl;
    }
    else{
        cout << "NO" << endl;
    }
}

int main(){
    string par;
    int N;
    cin >> N;
    for(int i = 0; i < N; i++){
        cin >> par;
        checkVPS(par);
    }
    return 0;
}

 

 

 

풀이와 스택 개념에 관한 내용은 아래 링크에 있습니다.

 

 

[기초] 자료구조 / 스택(stack)

스택(stack) 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 마지막으로 넣은 것이 가장 먼저 나오기 때문에 Last In First Out (LIFO) 라고도 합니다. - push : 스택에 자료를 넣는 연산 - pop : 스택에서 자

parkkingcar.tistory.com

 

댓글