온라인저지
[BOJ] 9012번: 괄호
plzfday
2018. 7. 26. 18:47
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;
}