본문 바로가기
C C++/C C++ 백준

C언어 백준 9012번 괄호

by Go! Jake 2022. 7. 10.

문제 풀이

(의 개수와 )의 개수를 세면서 점수처럼 (일 때 +1, )일 때 -1을 합니다. 이 때 최종값이 0이면 YES입니다.

단, ())와 같이 음수가 되는 경우 for문을 멈추고 NO를 출력합니다. 

 

YES NO 판단은 배열 마지막 자리일 때 수행합니다.

소스코드

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(){
	int T;
	scanf("%d",&T);
	
	for(int i = 0; i<T; i++)
	{
		char arr[51];
		int cnt=0;
		scanf("%s", arr);
		
		for (int i=0; i<strlen(arr); i++)
		{
			if (arr[i]=='(')
				cnt++;
			else if (arr[i]==')')
				cnt--;
			if (cnt<0)
			{
				printf("NO\n");
				break;
			}
			if (i==(strlen(arr)-1))
			{
				if (cnt==0)
					printf("YES\n");
				else
					printf("NO\n");
			}
		}
	}
    return 0;
}

댓글