반응형
문제 출처
백준 온라인 저지
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
문제
입 / 출력
풀이
스택을 사용해서 풀 수 있다.
'(' 일 경우 스택에 push 해주고, ')'일 경우 pop해준다.
이 때 ')'가 먼저 나올 경우나 마지막에 스택이 비어 있지 않을 경우 오류 처리 해준다.
코드
#include <iostream>
#include <stack>
using namespace std;
bool error = false;
int n, cnt = 0;
string input;
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
stack<char> VPS;
cin >> input;
error = false;
for (int j = 0; j < input.size(); j++) {
if (input[j] == '(')
VPS.push(input[j]);
else {
if (!VPS.empty()) {
VPS.pop();
} else {
error = true;
break;
}
}
}
if (!VPS.empty() || error)
cout << "NO\n";
else
cout << "YES\n";
}
}
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[C++] BOJ 2609 최대공약수와 최소공배수 (0) | 2022.01.18 |
---|---|
[C++] BOJ 11655 ROT13 (0) | 2022.01.18 |
[C++] BOJ 10825 국영수 (0) | 2022.01.07 |
[C++] BOJ 11052 카드 구매하기 (0) | 2022.01.05 |
[C++] BOJ 9461 파도반 수열 (0) | 2022.01.05 |