boj 9012 c++ 괄호

Algorithm / / 2020. 9. 3. 09:00

boj 9012 c++ 괄호

백준 9012 cpp 괄호

 

전제: ')'를 만나면 스택의 맨 위에 '('가 있어야 한다.

스택이 비어있어서는 안 된다.

((()) 같은 경우를 대비해 한 문장이 끝날 때 Stack 이 비어있으면 안 된다.

 

정답코드

#include <bits/stdc++.h>
using namespace std;

int ea;
string line;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> ea;
    while (ea--)
    {
        stack<int> S;
        bool iserror = false;
        cin >> line;
        for (int i = 0; i < line.size(); i++)
        {
            char c = line[i];
            if (c == '(')
            {
                S.push(c);
            }
            else //c == ')'
            {
                if (S.empty() || S.top() != '(')
                {
                    iserror = true;
                    break;
                }
                S.pop();
            }
        }
        if (!S.empty() || iserror == true)
        {
            cout << "NO\n";
        }
        else
        {
            cout << "YES\n";
        }
    }
}

 

'Algorithm' 카테고리의 다른 글

boj 1012 c++ 유기농 배추  (0) 2020.09.07
boj 4889 c++ 안정적인 문자열  (0) 2020.09.04
boj 2504 c++ 괄호의 값  (0) 2020.09.02
boj 10799 c++ 쇠막대기  (0) 2020.08.31
BOJ 1021 c++ 회전하는 큐  (0) 2020.08.29
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom