개인공부용123 프로그래밍 블로그
[백준] 9012 본문
스택을 쓸수도있는 문제이지만 배열을 써서 쉽게풀리므로 배열로 풀었습니다.
String으로 문자를 입력받은후 문자열을 각각확인해서 '('이면 +1 , ')' 이면 -1을 chk변수에 취합니다.
이 과정을 반복하는중에 chk가 0보다작게되면 괄호문자열이 아니므로 바로 빠져나가서 NO를 출력합니다
만약 끝까지 반복했을때 chk변수가 0일경우 정상적인 괄호이므로 YES를 출력합니다.
#include <iostream> #include <string> using namespace std; int main() { std::ios::sync_with_stdio(false); string str; int chk; int C; cin >> C; while (C--) { chk = 0; str = ""; cin >> str; for (int i = 0; i < str.length(); i++) { if (str[i] == '(') chk++; else chk--; if (chk < 0) break; } if (chk == 0) cout << "YES" << endl; else cout << "NO" << endl; } return 0; }
'알고리즘문제' 카테고리의 다른 글
[백준] 11866 & 1158 (조세퍼스문제 0, 1) (0) | 2017.05.04 |
---|---|
[백준] 1260 (0) | 2017.05.04 |
[백준] 1874(스택) (0) | 2017.05.02 |
[백준] 1929 (에라토스테네스의 체) (0) | 2017.05.02 |
[백준] 9426(세그먼트 트리) (0) | 2017.04.29 |