입력받은 문자열이 바르게 구성된 괄호 문자열(VPS)인지 판단하는 문제입니다.
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
#include<iostream>
#include<stack>
using namespace std;
void checkVPS(string p){
stack<char> checkP;
for(int i = 0; i < p.size(); i++){
if(p[i]=='('){
checkP.push('(');
}
else{
if(checkP.empty()){
checkP.push(')');
}
else if(checkP.top() == '('){
checkP.pop();
}
}
}
if(checkP.empty()){
cout << "YES" << endl;
}
else{
cout << "NO" << endl;
}
}
int main(){
string par;
int N;
cin >> N;
for(int i = 0; i < N; i++){
cin >> par;
checkVPS(par);
}
return 0;
}
풀이와 스택 개념에 관한 내용은 아래 링크에 있습니다.
[기초] 자료구조 / 스택(stack)
스택(stack) 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 마지막으로 넣은 것이 가장 먼저 나오기 때문에 Last In First Out (LIFO) 라고도 합니다. - push : 스택에 자료를 넣는 연산 - pop : 스택에서 자
parkkingcar.tistory.com
'알고리즘 > 백준' 카테고리의 다른 글
C++ 백준 BOJ 1620 나는야 포켓몬 마스터 이다솜 (0) | 2022.12.27 |
---|---|
C++ 백준 BOJ 11726 2 x n 타일링 (0) | 2022.12.19 |
C++ 백준 BOJ 1212 8진수 2진수 (0) | 2022.11.15 |
C++ 백준 BOJ 10870 피보나치 수 5 (0) | 2022.07.27 |
C++ 백준 BOJ 2960 에라토스테네스의 체 (0) | 2022.04.30 |
댓글