728x90

 

#include <stdio.h>
#include <cstdlib>

int main()
{
    int a[60]{ 0 };
    int b[60]{ 0 };
    char str[100];
    scanf("%s", &str);
    for(int i = 0; str[i]!='\0'; i++){
        // 대문자를 확인
        if (str[i]>=65 && str[i]<=90){
            a[str[i]-64]++;
        }
        else a[str[i]-70]++;
    }
    scanf("%s", &str);
    for(int i = 0; str[i]!='\0'; i++){
        // 대문자를 확인
        if (str[i]>=65 && str[i]<=90){
            b[str[i]-64]++;
        }
        else b[str[i]-70]++;
    }

    for(int i=1; i<=52; i++){
        if(a[i]!=b[i]){
            printf("NO\n");
            exit(0);
        }
    }
    printf("YES\n");
    return 0;
}

두개의 문장 알파벳을 비교하기 위해 소문자 26 + 대문자 26 = 52개의 배열을 만들어

알파벳이 나오면 해당 배열의 자릿수를 ++ 해준뒤 두개의 배열을 확인하여 두문장의 알파벳 갯수를 확인하겠습니다.

대문자를 1번부터 넣기위해 (A 는 아스키 코드로 65입니다.) - 64를 해줍니다. 그리고 a배열의 해당index를 ++ 해줍니다.

그리고 마찬가지로 두번째 문장도 for문을 돌면서 b 배열을 ++ 합니다.

 

마지막으로 알파벳 갯수 52개를 확인하기위해 for문을 52번돌고 a와 b 배열을 비교한뒤 다르면 No를 출력하고 프로그램을 종료합니다.

a 와 b 배열을 끝까지 비교햇는데도 다른게없다면 YES 를 출력합니다.

 

 

728x90