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 |
댓글