[백준][9012] 괄호
요구사항 분석
테스트 케이스 수 T가 주어지고 T개의 괄호 ‘(‘, ‘)’만으로 구성된 문자열이 입력됩니다.
각 문자열에 대해 ‘(‘ 문자로 시작해서 ‘)’ 로 짝이 이루어지는 문자열은 ‘YES’를 출력하고
짝이 맞지 않는 문자열은 ‘NO’를 출력합니다.
- (()) - YES
- )()( - NO
알고리즘 선택
문자열의 길이는 최대 50개까지 있으므로 순차탐색으로도 충분하기 때문에 문자열에 차례로 접근하여 짝이 이루어지는지 확인합니다.
풀이 분석
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
int main() {
int T;
std::cin >> T;
for (int i = 0; i < T; ++i) {
std::string buf;
std::cin >> buf;
int lcnt = 0, rcnt = 0;
for (char c : buf) {
if (c == '(') lcnt += 1;
else rcnt += 1;
if (lcnt < rcnt) break;
}
if (lcnt == rcnt) printf("YES\n");
else printf("NO\n");
}
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.