반응형
1919_애너그램 만들기
링크
https://www.acmicpc.net/problem/1919
풀이
애너그램은 철자를 굉장히 중요하게 생각합니다. 그렇기 때문에 영단어를 철자로 나누어 기록합니다.
그 후, 소문자만 들어오기 때문에 a~z까지 서로 얼마나 차이나나 구하면 제거해야 하는 최소 개수의 문자 수가 나옵니다.
차이를 구하는 방법은 max에서 min을 빼면 됩니다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
//1919_애너그램 만들기 #include <iostream> #include <string> #include <algorithm> using namespace std;
string str1, str2; int arr1['z' + 1], arr2['z' + 1], ans;
int main() { cin >> str1 >> str2;
for (int i = 0; i < str1.length(); ++i) arr1[str1[i]]++; for (int i = 0; i < str2.length(); ++i) arr2[str2[i]]++;
for (int i = 'a'; i <= 'z'; ++i) { ans += max(arr1[i], arr2[i]) - min(arr1[i], arr2[i]); }
cout << ans << endl;
return 0; } |
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 1712 손익분기점 (0) | 2018.11.21 |
---|---|
[백준 BOJ] 2903 중앙 이동 알고리즘 (0) | 2018.11.20 |
[백준 BOJ][stack] 3015 오아시스 재결합 (0) | 2018.11.18 |
[백준 BOJ][stack] 6549 히스토그램에서 가장 큰 직사각형 (0) | 2018.11.17 |
[백준 BOJ][stack] 2493 탑 (0) | 2018.11.16 |