https://www.acmicpc.net/problem/9012
9012번: 괄호
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)��
www.acmicpc.net
stack 라이브러리를 이용하자.
(가 입력되면 stack에 넣어주고, )가 입력되면 stack의 원소 하나를 pop해주면 된다. 이 때 stack이 비었거나 모든 행동을 종료했을 때 stack이 비어있지 않다면 답이 되지 못하므로, 잘 고려해서 문제를 풀어야 한다.
#include <cstdio>
#include <stack>
#include <iostream>
using namespace std;
int main(void){
int N, c;
string str;
bool answer=true;
scanf("%d", &N);
for(int i=0; i<N; i++){
answer = true;
stack<char> s;
cin>>str;
for(int i=0; i<str.size(); i++){
if(str[i]=='('){
s.push(str[i]);
}
else if(str[i]==')'){
if(s.empty())
answer=false;
else
s.pop();
}
}
if(!s.empty()){
answer=false;
}
if(answer)
printf("YES\n");
else
printf("NO\n");
}
}
'알고리즘 문제' 카테고리의 다른 글
[C/C++ 백준 10814번] 나이순 정렬 (Silver 5) (0) | 2020.08.20 |
---|---|
[C/C++ 백준 18111번] 마인크래프트 (Silver 3) (0) | 2020.08.20 |
[C/C++ 백준 10828번] 스택 (Silver 4) (0) | 2020.08.20 |
[C/C++ 백준 10845번] 큐 (Silver 4) (0) | 2020.08.20 |
[C/C++ 백준 2022번] 사다리 (Silver 1) (0) | 2020.08.20 |