초보입니다. ANAGRAM 답변 리뷰 부탁 드립니다.

  • hanwool26
    hanwool26

    처음 알고 스팟 접해서 문제푸는 초보 개발자인데요. 계속 오답이라고 떠서 어떤 경우에 오답이 나오는지 모르겠군여.

    일단 문제의 테스트 케이스는 만족한 것같은데 오답이라고만 뜨니 답답해서 조언을 구하고자합니다.

    #include <stdio.h>
    #include <string.h>
    
    #define MAX_STRING 100
    #define MAX_CASE 10
    
    #define debug(s) printf("%c", s)
    #define debug_d(d) printf("%d\n", d) 
    
    int compare_string(char *first, char *second)
    {
        int i ,j,k = 0;
        int string_len = strlen(first);
        //debug_d(string_len);
    
        if(strcmp(first, second) == 0 )
            return 0;
    
        for( i=0; i<string_len; i++)
        {
            for(j=0; j<string_len; j++)
            {
                if( first[i] == second[j])
                {
                    second[j] = '\0';
                    k = 0;
                    break;
                }
                k++;
    
                if( k == string_len)
                {
                    return 0;
                }           
            }
        }
        return 1;
    }
    int main()
    {
        char f_string[MAX_STRING];
        char s_string[MAX_STRING];
        int result[MAX_CASE];
        int num; // The number of case
    
        int i;
    
        scanf("%d", &num);
    
        for(i=0; i< num; i++)
        {
            scanf("%s %s", f_string, s_string);
            result[i] = compare_string( f_string, s_string );
        }
    
        for(i=0; i< num; i++)
        {
            printf("%s\n", result[i] == 1 ? "Yes" : "No");
        }
    
        return 0; 
    
    }
    

    8년 전
1개의 댓글이 있습니다.
  • JongMan
    JongMan

    배열의 크기를 확인하세요.


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