[์ธํ๋ฐ C++] 16. ์๋๊ทธ๋จ(Anagram) : ๊ตฌ๊ธ ์ธํฐ๋ทฐ ๋ฌธ์
Anagram์ด๋ ๋ ๋ฌธ์์ด์ด ์ํ๋ฒณ์ ๋์ด ์์๋ฅผ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ด ์ผ์นํ๋ฉด ๋ ๋จ์ด๋ ์๋๊ทธ๋จ์ด๋ผ ํ๋ค.
์๋ฅผ ๋ค์ด AbaAeCe ์ baeeACA๋ ์ํ๋ฒณ์ ๋์ด ์์๋ ๋ค๋ฅด์ง๋ง ๊ทธ ๊ตฌ์ฑ์ ์ดํด๋ณด๋ฉด ์ํ๋ฒณ๊ณผ ๊ทธ ๊ฐ์๊ฐ ๋ชจ๋ ์ผ์นํ๋ค. A(2), a(1), b(1), c(1), e(2). ์ฆ ์ด๋ ํ ๋จ์ด๋ฅผ ์ฌ๋ฐฐ์ดํ๋ฉด ์๋ํธ ๋จ์ด๊ฐ ๋ ์ ์๋ ๊ฒ์ ์๋๊ทธ๋จ์ด๋ผ ํ๋ค.
๊ธธ์ด๊ฐ ๊ฐ์ ๋ ๊ฐ์ ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ฉด ๋ ๋จ์ด๊ฐ ์๋๊ทธ๋จ์ธ์ง ํ๋ณํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์๋๊ทธ๋จ ํ๋ณ์ ๋์๋ฌธ์๊ฐ ๊ตฌ๋ถ๋ฉ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ์ฒซ ๋ฒ์งธ ๋จ์ด๊ฐ ์ ๋ ฅ๋๊ณ , ๋ ๋ฒ์งธ ์ค์ ๋ ๋ฒ์งธ ๋จ์ด๊ฐ ์ ๋ ฅ๋๋ค.
๋จ์ด์ ๊ธธ์ด๋ 100์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
YES/NO
1ํธ (์คํจ)
์๊ฐ์ด๊ณผ & ๋ต ๋์ถ ์คํจ
์ ๋ฐ๋ณต๋ฌธ์ '\0' ๋ฃ์์ด์ผ ํ๋๋ฐ..! ์๋ชปํ๋ค..!! (๏พะ๏พ*)๏พ
#include <iostream>
using namespace std;
int alphaA[123];
int alphaB[123];
int main(void){
//freopen("input.txt", "rt", stdin);
int num;
char a[101];
char b[101];
for(int i = 0; a[i] != '\n'; ++i){
num = a[i];
alphaA[num]++;
}
for(int i = 0; b[i] != '\n'; ++i){
num = b[i];
alphaB[num]++;
}
for(int i = 0; alphaA[i] != '\n'; ++i){
if(alphaA[i] != 0){
if(alphaA[i] != alphaB[i]){
cout << "NO";
return 0;
}
continue;
}
continue;
}
cout << "YES";
return 0;
}
2ํธ (๊ฐ์ ํ์ด)
์๋ฆฌ๋ ๊ฐ์๋ค.. ์ํ๋ฒณ ๊ฐฏ์๋งํผ ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ๋ง์ถ๊ธฐ!
#include <iostream>
#include <algorithm>
using namespace std;
int alphaA[60];
int alphaB[60];
int main(void){
//freopen("input.txt", "rt", stdin);
char str[100];
cin >> str;
for(int i = 0; str[i] != '\0'; ++i){
if(str[i] >= 65 || str[i] <= 90){
alphaA[str[i] - 64]++;
}
else alphaA[str[i] - 70]++;
}
cin >> str;
for(int i = 0; str[i] != '\0'; ++i){
if(str[i] >= 65 || str[i] <= 90){
alphaB[str[i] - 64]++;
}
else alphaB[str[i] - 70]++;
}
for(int i = 1; i <= 52; ++i){
if(alphaA[i] != alphaB[i]){
cout << "NO";
exit(0);
}
}
cout << "YES";
return 0;
}
exit(0)
ํ๋ก๊ทธ๋จ ์ข ๋ฃ