[스택] 백준 9012번 괄호
업데이트:
백준 9012번
괄호
스택의 가장 기본적인 문제이다.
’(‘ 가 나오면 스택에 집어넣고, ‘)’를 만나면 스택의 top을 pop 한다.
끝까지 수행했을 때 괄호의 짝이 맞다면 스택은 비었을 것이고, 괄호의 짝이 맞지 않다면 스택이 비지 않았을 것이다.
따라서 이 과정을 모두 반복했을 때 스택이 비었다면 VPS, 비어있지 않다면 VPS가 아니다.
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main(){
stack<char> checker;
string inp;
int num;
cin >> num;
for(int i=0;i<num;i++){
cin >> inp;
for(int j=0;j<inp.size();j++){
if(inp[j]=='('){
checker.push(inp[j]);
}
else if(inp[j]==')'){
if(!checker.empty()){
checker.pop();
}
else{
checker.push(inp[j]);
break;
}
}
}
if(!checker.empty()){
cout << "NO\n";
while(!checker.empty()){
checker.pop();
}
}
else{
cout << "YES\n";
}
}
return 0;
}1
댓글남기기