공부/Baekjoon

Baekjoon(9012) 괄호 in C

완이버스 2024. 1. 18. 00:21
#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