본문 바로가기

Computer Science&Engineering/코딩테스트

[백준 9012] 괄호

www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

스택처럼 '(' 일때 push하고, ')' 일때 pop 하면 되겠다. 굳이 스택을 구현하지 않고, '(' 일때는 +1, ')' 일때는 -1 을 해서 0이 되면 VPS로 판단하기로 했다. 검사하는 도중에 0보다 작아지면 for문을 탈출한다. VPS 는 1 이후 -1 이 나와서 0이 되어야 하기 때문! -1이 먼저 나오거나 -1이 1보다 어러번 나오면 안된다.

 

# 제출 코드

#include <stdio.h>
int main(){
	int T; // 테스트 데이터 수
	char PS[55]; // 괄호 문자열 
	int N; // VPS 판별  
	int i;
	scanf("%d ", &T);
	while(T--){
		N = 0;
		scanf("%s", PS);
		for(i=0; PS[i]; i++){
			if (PS[i] == '(') N++;
			else N--;
			if(N<0) break;
		}
		if (N == 0) printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}
반응형