XHAENEUNG 문제 질문입니다 ㅠㅠ

  • mju6229
    mju6229

    ㅠㅠ 그냥 노가다 방식으로 다 배열에다 저장해놓고 비교하는 방식으로 풀었습니다. 알파벳을 정렬해서 순서가 뒤바껴도 비교를 통해 정답을 가려 냈구요 합이 0과 10 사이의 숫자가 아닌 숫자면 모두 No로 나오게 했는데 어떤부분에서 오답이 뜨는지 너무나 궁금합니다 ㅠㅠ 생각해낼 수 있는 예제는 다 생각해서 집어넣어봤는데 혹시 다른 어떤 부분이 잘못되었는지 알 수 있을까요??

    #define _CRT_SECURE_NO_WARNINGS
    # include <iostream>
    # include <cstring>
    
    int compare(const void *a,const void *b){
        return (*(char*)b - *(char*)a);
    }
    
    char zero[11]={'z','e','r','o'};
    char one[11]={'o','n','e'};
    char two[11]={'t','w','o'};
    char three[11]={'t','h','r','e','e'};
    char four[11]={'f','o','u','r'};
    char five[11]={'f','i','v','e'};
    char six[11]={'s','i','x'};
    char seven[11]={'s','e','v','e','n'};
    char eight[11]={'e','i','g','h','t'};
    char nine[11]={'n','i','n','e'};
    char ten[11]={'t','e','n'};
    
    char a[11];
    int A;
    char b[11];
    int B;
    char operation[11];
    char u[11];
    char res[11];
    
    int main(){
        qsort(zero,11,sizeof(char),compare);
        qsort(one,11,sizeof(char),compare);
        qsort(two,11,sizeof(char),compare);
        qsort(three,11,sizeof(char),compare);
        qsort(four,11,sizeof(char),compare);
        qsort(five,11,sizeof(char),compare);
        qsort(six,11,sizeof(char),compare);
        qsort(seven,11,sizeof(char),compare);
        qsort(eight,11,sizeof(char),compare);
        qsort(nine,11,sizeof(char),compare);
        qsort(ten,11,sizeof(char),compare);
    
        int t,s,i;
    
        scanf("%d",&t);
    
        while(t--){
            s=0;
            scanf("%s",a);
            scanf("%s",operation);
            scanf("%s",b);
            scanf("%s",u);
            scanf("%s",res);
            qsort(res,11,sizeof(char),compare);
            A=100;
            B=100;
            s=100;
    
    
            if(a[0]=='z' && a[1]=='e' && a[2]=='r' &&a[3]=='0' && a[4] == 0  && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 0;
            if(b[0]=='z' && b[1]=='e' && b[2]=='r' && b[3]=='o' && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 0;
            if(a[0]=='o' && a[1]=='n' && a[2]=='e' && a[3]==0 && a[4] == 0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A=1;
            if(b[0]=='o' && b[1]=='n' && b[2]=='e' && b[3]==0 && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B=1;
            if(a[0]=='t' && a[1]=='w' && a[2]=='o' && a[3]==0 && a[4]==0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A=2;
            if(b[0]=='t' && b[1]=='w' && b[2]=='o' && b[3]==0 && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B=2;
            if(a[0]=='t' && a[1]=='h' && a[2]=='r' &&a[3]=='e' && a[4]=='e' && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 3;
            if(b[0]=='t' && b[1]=='h' && b[2]=='r' && b[3]=='e' && b[4]=='e' && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 3;
            if(a[0]=='f' && a[1]=='o' && a[2]=='u' &&a[3]=='r' && a[4] == 0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 4;
            if(b[0]=='f' && b[1]=='o' && b[2]=='u' && b[3]=='r' && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 4;
            if(a[0]=='f' && a[1]=='i' && a[2]=='v' &&a[3]=='e' && a[4] == 0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 5;
            if(b[0]=='f' && b[1]=='i' && b[2]=='v' && b[3]=='e' && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 5;
            if(a[0]=='s' && a[1]=='i' && a[2]=='x' && a[3]==0 && a[4] == 0&& a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A=6;
            if(b[0]=='s' && b[1]=='i' && b[2]=='x' && b[3]==0 && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B=6;
            if(a[0]=='s' && a[1]=='e' && a[2]=='v' &&a[3]=='e' && a[4]=='n' && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 7;
            if(b[0]=='s' && b[1]=='e' && b[2]=='v' && b[3]=='e' && b[4]=='n' && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 7;
            if(a[0]=='e' && a[1]=='i' && a[2]=='g' &&a[3]=='h' && a[4]=='t' && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 8;
            if(b[0]=='e' && b[1]=='i' && b[2]=='g' && b[3]=='h' && b[4]=='t' && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 8;
            if(a[0]=='n' && a[1]=='i' && a[2]=='n' &&a[3]=='e' && a[4] == 0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A = 9;
            if(b[0]=='n' && b[1]=='i' && b[2]=='n' && b[3]=='e' && b[4] == 0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B = 9;
            if(a[0]=='t' && a[1]=='e' && a[2]=='n' && a[3]==0 && a[4]==0 && a[5] == 0  && a[6] == 0  && a[7] == 0  && a[8] == 0  && a[9] == 0)
                A=10;
            if(b[0]=='t' && b[1]=='e' && b[2]=='n' && b[3]==0 && b[4]==0 && b[5] == 0  && b[6] == 0  && b[7] == 0  && b[8] == 0  && b[9] == 0)
                B=10;
    
            if(operation[0]=='+' && operation[1]==0)
                s = A+B;
            else if(operation[0]=='*' && operation[1]==0)
                s = A*B;
            else if(operation[0]=='-' && operation[1]==0)
                s = A-B;
            else{
                printf("No\n");
            }
    
            if(s>10 || s<0)
                printf("No\n");
            else if(s==0){
                for(i=0;i<10;i++){
                    if(zero[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==1){
                for(i=0;i<10;i++){
                    if(one[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==2){
                for(i=0;i<10;i++){
                    if(two[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==3){
                for(i=0;i<10;i++){
                    if(three[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==4){
                for(i=0;i<10;i++){
                    if(four[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==5){
                for(i=0;i<10;i++){
                    if(five[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==6){
                for(i=0;i<10;i++){
                    if(six[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==7){
                for(i=0;i<10;i++){
                    if(seven[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==8){
                for(i=0;i<10;i++){
                    if(eight[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==9){
                for(i=0;i<10;i++){
                    if(nine[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
            else if(s==10){
                for(i=0;i<10;i++){
                    if(ten[i] != res[i]){
                        printf("No\n");
                        break;
                    }
                }
                if(i == 10)
                    printf("Yes\n");
            }
    
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            memset(u,0,sizeof(u));
            memset(res,0,sizeof(res));
            memset(operation,0,sizeof(operation));
    
        }
    
    
        return 0;
    }
    

    8년 전
2개의 댓글이 있습니다.
  • astein
    astein

    이 라인이 잘못되어 있습니다.
    코드가 너무 길어서 읽기 힘들었습니다... ㅠ

    if(a[0]=='z' && a[1]=='e' && a[2]=='r' &&a[3]=='0' && a[4] == 0 && a[5] == 0 && a[6] == 0 && a[7] == 0 && a[8] == 0 && a[9] == 0)


    8년 전 link
  • mju6229
    mju6229

    하 .. 너무나 감사합니다 ㅋㅋㅋ 드디어 정답이 .. 코드좀 효율적이게 짜도록 할게요.. 읽느라 수고하셨습니다!


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