https://www.acmicpc.net/problem/9012
필요 없다. ㅋㅋ
'(' 문자가 나온 개수, ')' 문자가 나온 개수를 빼는 방식으로 풀면 된다.
그런데, )( 가 그러면 옳다고 처리되니 문자열을 받아 더하는 도중에 '(' 개수 - ')' 개수 < 0이 되면 옳지 않다고 예외 처리도 해줘야 한다.
main()
{
int t;
char a[51];
for(scanf("%d ",&t);t--;)
{
gets(a);
int stack,i;
for(i=stack=0;a[i];i++)
{
if(a[i]=='(')stack++;
if(a[i]==')')
{
if(stack==0)break;
stack--;
}
}
puts(a[i]||stack?"NO":"YES");
}
}