본문 바로가기
온라인저지

[BOJ] 9012번: 괄호

by plzfday 2018. 7. 26.

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

STL에 있는 stack을 이용하면 쉽게 해결할 수 있다.

(면 push, ) 일 때 스택이 비어있으면 NO 출력하고 종료, 아니면 pop을 반복한다.

문자열을 다 돌고 마지막에 스택에 뭔가가 있다면 VPS가 아니므로 NO를 출력해야 한다.

#include <string>
#include <iostream>
#include <stack>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(0);
    int T;

    cin >> T;
    while (T--)
    {
        string s;
        stack<char> stk;
        bool flag = false;
        cin >> s;

        for (auto &i : s)
        {
            if (i == '(')
                stk.push('(');
            else if (i == ')')
            {
                if (stk.empty())
                {
                    flag = true;
                    break;
                }
                stk.pop();
            }
        }

        if (flag || !stk.empty())
            cout << "NO\n";
        else
            cout << "YES\n";
    }
    return 0;
}

 

'온라인저지' 카테고리의 다른 글

[BOJ] 2075번: N번째 큰 수  (0) 2018.07.26
[BOJ] 1159번: 농구 경기  (0) 2018.07.26
[BOJ] 10799번: 쇠막대기  (0) 2018.07.26
[BOJ] 10845번: 큐  (0) 2018.07.26
[BOJ] 10828번: 스택  (0) 2018.07.26
[BOJ] 1158번: 조세퍼스 문제  (0) 2018.07.26

댓글