ANAGRAM 오답관련 질문이요

  • nop2001
    nop2001
    #include<stdio.h>
    
    int ana(){
        int in1[140]={0,};
        int in2[140]={0,};
        char input1[101]={0,};
        char input2[101]={0,};
        int a=0;
        int c=0;
        int result = 0;
    
        scanf("%s",input1);
        scanf("%s",input2);
    
        while(1){
            if(input1[a]==NULL){
                break;
            }
            c = input1[a]-0;
            in1[c]++;
            a++;
        }
        a=0;
        while(1){
            if(input2[a]==NULL){
                break;
            }
            c = input2[a]-0;
            in2[c]++;
            a++;
        }
    
        for(int b=0; b<140; b++){
            if(in1[b] != in2[b]){
                result = 1;
                break;
            }
        }
        if(result == 0){
            printf("Yes\n");
        }else{
            printf("No.\n");
        }
    
        return 0;
    }
    
    int main(){
        int test=0;
    
        scanf("%d", &test);
    
        for(int a=0; a<test; a++){
            ana();
        }
    
        return 0;
    }
    

    제가 푼 방식은 char을 받아서 그 char의
    아스키 코드 번호를 인덱스로
    배열 in1 in2 값을 증가 시켜 줍니다.
    그리고 in1과 in2의 값을 비교하여 전체가 동일하면 Yes를
    하나라도 틀리면 No.를 출력하도록 하였습니다
    제가 문제를 잘못 이해한건지 예외가 있는건지
    궁금합니다.


    9년 전
2개의 댓글이 있습니다.
  • Kureyo
    Kureyo

    input1과 input2가 완벽하게 일치하는 경우에는 No를 출력해야할겁니다 문제를 잘 읽어보세요


    9년 전 link
  • nop2001
    nop2001

    아 맞네요 ㅎ 제가 잘못 이해 했었네요 ㅎㅎㅎ
    감사합니다


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