#include <stdio.h>
#include <string.h>
#define MAX 52
int main(){
int N;
scanf("%d",&N);
getchar();
for(int i = 0; i < N; i++){
char input[52];
fgets(input,MAX,stdin);
int LEFT = 0, RIGHT = 0, LEN = 0, FLAG = 1;
LEN = strlen(input);
for(int j = 0; j < LEN - 1; j++){
if(input[j] == '('){
LEFT++;
}
if(input[j] == ')'){
RIGHT++;
if(RIGHT > LEFT){
FLAG = 0;
break;
}
}
}
if(LEFT == RIGHT && FLAG == 1){
printf("YES\n");
}
else{
printf("NO\n");
}
}
}
문제에 주어진 testcase는 다 만족하는데 어디가 문제인지는 잘 모르겠다..
혹시나 반례를 찾으시는 분이 있다면 알려주시면 감사합니다...
scanf는 입력 문자열에 + \0가 들어가게 되고 fgets는 입력 문자열에 '\n' + '\0'까지 들어가게 된다.
그러므로 input 배열의 사이즈는 52가 되야지 주어진 입력 버퍼만큼 채울수 있다
'공부 > Baekjoon' 카테고리의 다른 글
Baekjoon(9093) 단어 뒤짚기 in C (0) | 2024.01.17 |
---|---|
Baekjoon(10828) C Language (0) | 2024.01.16 |