brakets2 문제에 다시 한번질문이요

  • vvarzero
    vvarzero

    소스코드만 줄였는데 런타임오류에서 오답으로 바뀌었네요.
    아무튼 문제에 주어진 입력값에는 전혀 문제없이 정답을 출력합니다.안

    입오답이 나오는 입력값 좀 알려주실 수 있을까요?

    아래 소스는 str배열에 입력값을 넣고
    leftCh배열에는 ({[문자를 넣고 rightCh배열에는 )}]문자를 넣었습니다.
    그리고 하나하나 체크해서 짝이 맞지않으면 no를 출력 짝이 맞으면 yes를 출력하도록 소스를 짰습니다.


    #include
    #include
    #include

    int main(void)
    {
    int i, j;
    int numTestCases;
    scanf("%d",&numTestCases);

    for(i=0;i<numTestCases;i++)
    {
        int len=0;
        char str[10000]={0};
        char leftCh[10000]={0};
        char rightCh[10000]={0};
        int lCnt=0,rCnt=0,chk=1;
        scanf("%s",&str);
        len=strlen(str);
        for(j=0;j<len;j++)
        {
            if(str[j] == '(' || str[j] == '[' || str[j]== '{')
            {
                if(str[j] == '(')
                {
                    leftCh[lCnt++]=str[j];
                    rightCh[rCnt++]=str[j]+1;
                }
                else if(str[j] == '[' || str[j] == '{')
                {
                    leftCh[lCnt]=str[j];
                    rightCh[rCnt++]=str[j]+2;
                }   
            }
            else if(str[j] == ')' || str[j] == ']' || str[j] == '}')
            {
                if( rightCh[ strlen(rightCh)-1 ] == str[j] )
                {
                    rightCh [ strlen(rightCh)-1 ] = 0;
                    rCnt--;
                    continue;
                }
                else if( rightCh[ strlen(rightCh)-1 ] != str[j] )
                {
                    chk=0;
                    break;
                }
            }           
        }
        if(chk == 1)
            printf("YES \n");
        else if(chk == 0)
            printf("NO \n");
    }
    return 0;

    }


    11년 전
3개의 댓글이 있습니다.
  • gamzachip
    gamzachip

    그냥 오타 몇개 있으신거 같은데

    예를들어 {[]} 이거 처리 안될거 같아요
    그리구 rCnt 변수를 만들어 두시구 strlen 을 쓴 이유도 궁금하네요


    11년 전 link
  • vvarzero
    vvarzero

    strlen 쓸 필요가 없었네요 ㅋㅋㅋ 아무튼 오타라면 if {[( 이 부분에서 leftCh[lCnt]부분 말씀하시는건가요? 다시 고쳐서 해봐도 오답이 뜨네요. 뭔가 소스 전체 흐름에 문제인 것 같은데....제가 짠 소스에서 뭐가 문제인지 알고싶네요 ㅠ. {[]}도 문제없이 처리가 되고 ㅠ왠만한거는 다 해봤는데 잘 처리됩니다 ㅠㅠ


    11년 전 link
  • vvarzero
    vvarzero

    아 문제점 발견했네요. (() 하면 yes뜨네요


    11년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.