첫째 줄과 둘째 줄에 영어 단어가 소문자로 주어진다. 각각의 길이는 1,000자를 넘지 않으며, 적어도 한 글자로 이루어진 단어가 주어진다.
애너그램을 만들기 위해 제거해야하는 최소 개수의 문자 수
두 문자열을 이중반복문을 통해 비교하면서 문자가 두 문자열에 모두 있는 경우와 모두 없는 경우를 구하기
제거해야하는 문자 수 = A에서 제거해야하는 문자 수(B에 없는 문자 수) + B에서 제거해야하는 문자 수(전체 문자수-모두 있는 경우)
#include <iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
string a,b;
cin>>a;
cin>>b;
vector<int> b_check(b.size());
int noA=0; //a에 있는게 b에 없는 경우
int inB=0; //a에 있는게 b에도 있는 경우
for(int i=0;i<a.size();i++){
int a_check=0;
for(int j=0;j<b.size();j++){
if(b_check[j]==0 &&a[i]==b[j]){
b_check[j]=1;
inB++;
a_check=1;
break;
}
}
if(a_check==0){
noA++;
}
}
cout<<noA+(b.size()-inB)<<endl; //a와b 모두 없는 경우(a에 없는 경우) + (b의 길이-모두 있는 경우 == b에 없는 경우 세기)
return 0;
}
int strA[26]={0,}
int strB[26]={0,}
-> 각 알파벳 인덱스에 해당하는 배열의 값 증가
-> (strA[i]-strB[i])의 절대값 = 제거해야하는 문자 수