https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
1) 풀이
2021/03/04 - [알고리즘 코테준비/백준] - [백준/c++] 4949 - 균형잡힌 세상
2021/03/05 - [알고리즘 코테준비/백준] - [백준/c++] 4889 - 안정적인 문자열
이 문제는 위의 문제들과 같은 방법으로 풀면 되기 때문에 따로 풀이를 적진 않겠다!
다만, 자꾸 똑같은 실수를 해서 어이없게 틀리는 경우가 나와서 적어둔다.
문제에서 각 테스트데이터를 입력할 때마다 항상 스택을 초기화하는 것을 잊지말자!!!
이거때문에 단번에 맞힐 수 있는 것도 자꾸 틀린다😥
다음에는 꼭, 꼭 기억하자!

2) 최종 소스코드
#include <bits/stdc++.h>
using namespace std;
int t;
string s;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> t;
while (t--) {
stack<char>st; // 괄호 저장할 스택
cin >> s;
bool yes = 1; // 해당 문자열이 VPS인지 판단. 1이면 맞음, 0이면 VPS 아님
for (auto c : s) {
if (c == '(') {
st.push(c);
}
else if (c == ')') {
if (st.empty()) {
yes = 0;
break;
}
else if (st.top() == '(') {
st.pop();
}
}
}
if (!st.empty()) {
yes = 0;
}
if (yes) {
cout << "YES" << '\n';
}
else cout << "NO" << '\n';
}
}
3) 참고자료
728x90
'Problem Solving > 백준' 카테고리의 다른 글
[백준/c++] 2504 - 괄호의 값 (0) | 2021.03.10 |
---|---|
[백준/c++] 11728 - 배열 합치기 (0) | 2021.03.06 |
[백준/c++] 4889 - 안정적인 문자열 (0) | 2021.03.05 |
[백준/c++] 4949 - 균형잡힌 세상 (0) | 2021.03.04 |
[백준/c++] 5430 - AC (0) | 2021.03.04 |