Study/PS(Algorithm)
[C++] 백준 BOJ 9012 괄호
노랑펭귄
2018. 7. 24. 10:28
문제링크 : https://www.acmicpc.net/problem/9012
1. 열린 괄호의 갯수 == 닫힌 괄호의 갯수 가 성립해야한다.
2. ( 가 나올때마다 카운트를 증가시키고 ) 이 나올때마다 카운트를 감소시켜 최종 카운트가 0이 되어야 한다.
3. 닫힌 괄호가 먼저 나오면 안된다. ())(() 라던지 ))()(( 의 상황이 나오면 안된다는 뜻 (20~21번째 줄 조건시 break)
심화문제로 BOJ 10799번 쇠막대기 문제가 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | // BOJ 9012 괄호 #include <bits/stdc++.h> using namespace std; int main() { // freopen("../input.txt", "r", stdin); int T; cin >> T; while(T--){ string str; cin >> str; int cnt = 0; for(int i = 0; i < str.size(); i++){ if(str[i] == '(') cnt++; else cnt--; if(cnt < 0) break; } cout << (cnt == 0? "YES\n" : "NO\n"); } return 0; } | cs |