인프런 커뮤니티 질문&답변

Dan LEE님의 프로필 이미지
Dan LEE

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

8. 올바른 괄호(문자열 컨트롤)

이상한 점이 있습니다

작성

·

166

1

#include <stdio.h>

int main(){

    //freopen("input.txt", "rt", stdin);

    char input[100];

    int count = 0;

    scanf("%s", &input); 

    for(int i=0; input[i] != '\0'; ++i){

        if(input[i] == '(') count ++;

        else if(input[i] == ')') count --;

        //In this question, if ')' is more than '(', answer is wrong. counter < 0 -> false

        if(count < 0) break;

    }

    //If count = 0, it means that '(' meets ')'

    if(count == 0) printf("Yes\n");

    //If count < 0, it prints NO as well

    else printf("NO\n");

    return 0;

}

단순히 변수명만 바꿨을 뿐인데 채점기를 돌리니까 test case 1과 5번이 'wrong answer'로 나옵니다. 그런데 그냥 vscode terminal 에서 돌리면 test case 1,5번 둘 다 정확한 정답이 나옵니다. 혹시 채점기 오류인가요??

혹시 정답 소스코드와 제 코드가 다른점이 있는건가요?

cf)정답 소스코드를 넣고 채점기를 돌리면 test case 전부 통과합니다. 

감사합니다.

답변 2

1

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

현재 캘탭으로만 보고 있는데요. 코드만 봐서는 출력할 때 YES와 같이 대문자로 해야되는게 아닌가 싶습니다. 제가 실제 데이테를 어떻게 했는지 기억이 잘 아나서ㅠㅠ

그게 원인이 아니면 이따 컴퓨터에서 돌려보고 답변드리겠습니다.

0

Dan LEE님의 프로필 이미지
Dan LEE
질문자

 if(count == 0) printf("Yes\n"); 여기를 대문자 YES로 바꾸까 test case전부 다 통과했습니다. 무슨 원리인지는 모르겠지만 빠른 답변 덕분에 찜찜했던게 해결된거 같습니다.

감사합니다!

Dan LEE님의 프로필 이미지
Dan LEE

작성한 질문수

질문하기