BOJ - 1919번_애너그램 만들기 (C++)
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;
}