나만의 작은 도서관
문제 9012.괄호 (자료구조) 본문
문제 설명
괄호로만 구성되어 있는 문자열을 PS(Parenthesis String)라 부르며,
모든 괄호가 짝을 이루는 문자열을 VPS(Valid PS)라고 부른다.
입력으로 주어진 PS가 VPS인지 판단하여 YES 또는 NO를 출력해야한다.
Tip) 왼쪽부터 순차적으로 문자를 탐색할 때, VPS는 어느 순간에서든 왼쪽 괄호 개수가 많거나 같다.
#include <iostream>
#include <string>
using namespace std;
/// <summary>
/// 문자열이 VPS인지 판단한다.
/// </summary>
/// <param name="str"> 판단할 문자열 </param>
/// <returns> VPS 판단 결과</returns>
bool isVPS(string str) {
int cnt = 0;
for (int i = 0; i < str.length(); i++) {
if (str[i] == '(') cnt++;
else cnt--;
if (cnt < 0) return false;
}
return (cnt == 0);
}
int main() {
int T; // Test 개수
string str, ans;
cin >> T;
for (int i = 0; i < T; i++) {
cin >> str;
ans = isVPS(str) ? "YES" : "NO";
cout << ans << endl;
}
return 0;
}
'백준 문제풀이 > Others' 카테고리의 다른 글
문제 1747. 소수&팰린드롬 (대학생 기본반 1번) (0) | 2024.03.19 |
---|---|
문제 1991.트리 순회 (대학생 심화반 6번) (0) | 2024.03.18 |
문제 2805.나무 자르기 (대학생 심화반 2번) (0) | 2024.03.18 |
문제 2003.수들의 합 2 (대학생 심화반 1번) (0) | 2024.03.18 |
문제 13458.시험 감독(문제집) (0) | 2023.09.14 |