๐Ÿง ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

[์ธํ”„๋Ÿฐ C++] 16. ์•„๋‚˜๊ทธ๋žจ(Anagram) : ๊ตฌ๊ธ€ ์ธํ„ฐ๋ทฐ ๋ฌธ์ œ

peewoong 2024. 4. 4. 21:34

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)

ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ

๋Œ“๊ธ€์ˆ˜0