개인공부용123 프로그래밍 블로그

[백준] 9012 본문

알고리즘문제

[백준] 9012

개인공부용123 2017. 5. 2. 23:00

스택을 쓸수도있는 문제이지만 배열을 써서 쉽게풀리므로 배열로 풀었습니다.


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