Anagram (구글 인터뷰문제)
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
'Algorithm > 코딩테스트 준비' 카테고리의 다른 글
javascript - 괄호문자제거 (자료구조 stack and queue) (0) | 2021.08.14 |
---|---|
선생님 퀴즈 (0) | 2020.11.27 |
숫자만 추출해서 약수 출력하기 (0) | 2020.11.08 |
나이계산 (문자열 컨트롤하기) (0) | 2020.11.08 |
댓글
이 글 공유하기
다른 글
-
javascript - 괄호문자제거 (자료구조 stack and queue)
javascript - 괄호문자제거 (자료구조 stack and queue)
2021.08.14 -
선생님 퀴즈
선생님 퀴즈
2020.11.27 -
숫자만 추출해서 약수 출력하기
숫자만 추출해서 약수 출력하기
2020.11.08 -
나이계산 (문자열 컨트롤하기)
나이계산 (문자열 컨트롤하기)
2020.11.08