BOJ - 1919번_애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 두 개의 영어 단어가 주어졌을 때, 두 단어가 서로 애너그램 관계에 있도록 만들기 위해서 제거해야 하는 최소 개수의 문자 수를 구하는 프로그램 작성하기


풀이

각 단어에 포함되어 있는 알파벳의 개수를 기록하고, 두 개의 영어 단어에서 동일하게 가지고 있는 알파벳은 제외하고 다른 알파벳의 개수만 세어준다.


소스코드

#include <bits/stdc++.h>
using namespace std;

int arr[26];
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	string s1, s2;
	cin >> s1 >> s2;
	
	for(int i=0; i<s1.length(); i++) {
		arr[s1[i]-'a']++;
	}
	for(int i=0; i<s2.length(); i++) {
		arr[s2[i]-'a']--;
	}
	
	int sum=0;
	for(int i=0; i<26; i++) {
		sum += abs(arr[i]);
	}
	cout << sum;
}