#include <iostream>
#include <stdio.h>
int main() {
char A[],B[];
char str[100];
int i;
scanf("%s",&str);
for(int i = 0; A[i] != '\0'; i++){
if(str[i] >= 65 && str[i] <= 90){//소문자
A[str[i] - 64]++; //해당 index에 count한다.
}
else if(str[i] >= 97 && str[i] <= 122){
A[str[i] - 70]++; //해당 index에 count한다.
}
}
scanf("%s",&str);
for(int i = 0; B[i] != '\0'; i++){
if(str[i] >= 65 && str[i] <= 90){//소문자
B[str[i] - 64]++; //해당 index에 count한다.
}
else if(str[i] >= 97 && str[i] <= 122){
B[str[i] - 70]++; //해당 index에 count한다.
}
}
for(i =0; i<= 52; i++){
if(A[i] != B[i]){
printf("NO\n");
exit(0);
}
}
printf("Yes\n");
return 0;
}
성찰
- 이전에도 JAVA로 아나그램 문제를 해결한 적이 있었는데, Sort를 사용하지 않고 아스키코드를 이용하여 근본적인 해결방안으로 해결하였다.
- 대소문자 구분이 가능하고 속도도 빨라서 가장 좋은 해결방안이라고 생각한다.
- 무조건 A와 B에 입력하여 해결하려고 했었는데, str이라는 임의 배열에 입력하여 결과값을 A[],B[]에 대입하여 해결하는 방안이 굉장히 인상깊다.