XHAENEUNG 오답

  • gyoseung
    gyoseung

    XHAENEUNG 문제 테스트 케이스 다 통과한 것 같고 결과 잘 출력되는 것 같은데 어디가 오답인지 도무지 모르겠어서 도움 요청합니다 ㅜㅜ

    #include <stdio.h>
    
    int t;
    char op, eq;
    
    char num[11][11] = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" };
    char a[11], b[11], c[11];
    int n1, n2, n3;
    
    int strlen(const char str[])
    {
        int idx = 0;
    
        while(str[idx] != '\0') {
            idx++;
        }
    
        return idx;
    }
    
    int strcmp(char str1[], char str2[])
    {
        for (int i = 0 ; i < strlen(str1) ; i++)
        {
            if (str1[i] != str2[i]) {
                return 0;
            }
        }
    
        return 1;
    }
    
    void sort(char str[])
    {
        char temp;
        int n = strlen(str);
    
        for (int i = 0 ; i < n ; i++)
        {
            for (int j = 0 ; j < n-i-1 ; j++)
            {
                if (str[j] > str[j+1])
                {
                    temp = str[j];
                    str[j] = str[j+1];
                    str[j+1] = temp;
                }
            }
        }
    }
    
    int getInt(char str[])
    {
        int n = 0;
    
        for (int i = 0 ; i < 11 ; i++)
        {
            if (strcmp(num[i], str)) {
                n = i;
                break;
            }
        }
    
        return n;
    }
    
    int calc(int a, int b, char op)
    {
        if (op == '+') {
            return a+b;
        } else if (op == '-') {
            return a-b;
        } else {
            return a*b;
        }
    }
    
    int main()
    {
        for (int i = 0 ; i < 11 ; i++) {
            sort(num[i]);
        }
    
        scanf("%d", &t);
    
        while(t--)
        {
            char* str = NULL;
            int result = 0;
    
            scanf("%s %c %s %c %s", a, &op, b, &eq, c);
    
            sort(a);
            sort(b);
            sort(c);
    
            n1 = getInt(a);
            n2 = getInt(b);
            n3 = getInt(c);
    
            result = calc(n1, n2, op);
    
            if (n3 == result) {
                str = "YES";
            } else {
                str ="NO";
            }
    
            if (result < 0 || result > 10) {
                str = "NO";
            }
    
            printf("%s\n", str);
        }
    
        return 0;
    }
    

    10년 전
4개의 댓글이 있습니다.
  • 꿀호떡
    꿀호떡

    출력 형식을 유심히 들여다보셔요


    10년 전 link
  • gyoseung
    gyoseung

    출력 형식은 생각도 못했네요.. 그런데 Yes, No로 바꿔서 제출해도 오답입니다..ㅜㅜ


    10년 전 link
  • 꿀호떡
    꿀호떡

    five - five = hello


    10년 전 link
  • gyoseung
    gyoseung

    덕분에 해결했습니다. 감사합니다


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