- toc {:toc}
๋ฌธ์
๋ ์์ด ๋จ์ด๊ฐ ์ฒ ์์ ์์๋ฅผ ๋ค๋ฐ๊พธ์ด ๊ฐ์์ง ์ ์์ ๋, ๊ทธ๋ฌํ ๋ ๋จ์ด๋ฅผ ์๋ก ์ ๋๊ทธ๋จ ๊ด๊ณ์ ์๋ค๊ณ ํ๋ค. ์๋ฅผ ๋ค๋ฉด occurs ๋ผ๋ ์์ด ๋จ์ด์ succor ๋ ์๋ก ์ ๋๊ทธ๋จ ๊ด๊ณ์ ์๋๋ฐ, occurs์ ๊ฐ ๋ฌธ์๋ค์ ์์๋ฅผ ์ ๋ฐ๊พธ๋ฉด succor์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.
ํ ํธ, dared์ bread๋ ์๋ก ์ ๋๊ทธ๋จ ๊ด๊ณ์ ์์ง ์๋ค. ํ์ง๋ง dared์์ ๋งจ ์์ d๋ฅผ ์ ๊ฑฐํ๊ณ , bread์์ ์ ์ผ ์์ b๋ฅผ ์ ๊ฑฐํ๋ฉด, ared์ read๋ผ๋ ์๋ก ์ ๋๊ทธ๋จ ๊ด๊ณ์ ์๋ ๋จ์ด๊ฐ ๋จ๊ฒ ๋๋ค.
๋ ๊ฐ์ ์์ด ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ๋ ๋จ์ด๊ฐ ์๋ก ์ ๋๊ทธ๋จ ๊ด๊ณ์ ์๋๋ก ๋ง๋ค๊ธฐ ์ํด์ ์ ๊ฑฐํด์ผ ํ๋ ์ต์ ๊ฐ์์ ๋ฌธ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ๋์๋ ์๋ฌด ์์น์ ์๋ ๋ฌธ์๋ ์ง ์ ๊ฑฐํ ์ ์๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค๊ณผ ๋์งธ ์ค์ ์์ด ๋จ์ด๊ฐ ์๋ฌธ์๋ก ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ๊ธธ์ด๋ 1,000์๋ฅผ ๋์ง ์์ผ๋ฉฐ, ์ ์ด๋ ํ ๊ธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ต์ ์ถ๋ ฅํ๋ค.
์ถ์ฒ:https://www.acmicpc.net/problem/1919
ํ์ด
๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ๋ฐฐ์ด์ ์ฎ๊ธฐ๊ณ ์๋ก ๊ฐ์๋ฅผ ๋น๊ตํ์ฌ ๋ง์ ๊ฒ๋ค์ ์ ๊ฑฐํ๋ค.
(์ถ๊ฐ๊ฐ ์๋๊ณ ์ ๊ฑฐ๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ)
// ์ ๋๊ทธ๋จ ๊ด๊ณ ๋ง๋ค๊ธฐ
// ์ ๋๊ทธ๋จ ๋ง๋ค๊ธฐ ์ํด ๋ช ๊ฐ์ ๋ฌธ์๋ฅผ ์ ๊ฑฐํด์ผ ํ๋๊ฐ?
#include <bits/stdc++.h>
using namespace std;
int first[30];
int second[30];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
string a, b;
int cnt = 0;
cin >> a >> b;
for(auto elem : a){
first[(int)elem-97]++;
}
for(auto elem : b){
second[(int)elem-97]++;
}
for(int i = 0; i<30; i++){
if(first[i]!=0 || second[i]!=0){
if(first[i]>second[i]){
cnt += first[i] - second[i];
}
else if(first[i]<second[i]){
cnt += second[i] - first[i];
}
}
}
cout << cnt << endl;
return 0;
}์ ๋ต ํ์ด (ํจ์ฌ ๊ฐ๊ฒฐํ๋ค)
- ๋ฐฐ์ด์ ํ๋๋ก ํฉ์นจ.
- abs ํจ์๋ก ๋ถํ์ํ if๋ฌธ์ ์ค์. ์ ๋๊ฐ ์์๋๊ธฐ.
// Authored by : twinkite
// Co-authored by : BaaaaaaaaaaarkingDog
// http://boj.kr/ae5d8d2f69f04530b4df0c591e9b07d5
#include <bits/stdc++.h>
using namespace std;
int arr[2][26], res;
string s1, s2;
int main(void){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>s1>>s2;
for(char c : s1)
arr[0][c-'a']++;
for(char c : s2)
arr[1][c-'a']++;
for(int i=0; i<26; i++)
res += abs(arr[0][i]-arr[1][i]);
cout << res;
}