Mini

백준 1919 cpp // 문자열 차이검사는 +1, -1로 비교하라 본문

Algorithm/배열

백준 1919 cpp // 문자열 차이검사는 +1, -1로 비교하라

Mini_96 2023. 8. 16. 20:42

https://www.acmicpc.net/problem/1919

 

1919번: 애너그램 만들기

두 영어 단어가 철자의 순서를 뒤바꾸어 같아질 수 있을 때, 그러한 두 단어를 서로 애너그램 관계에 있다고 한다. 예를 들면 occurs 라는 영어 단어와 succor 는 서로 애너그램 관계에 있는데, occurs

www.acmicpc.net

*의사코드

1. s1 문자는 +1 // v[a]++

2. s2 문자는 -1 // v[a]--;

3. 0이 아닌 v에 대해 == 서로다른 문자에 대해 :

ret+=  abs(v[a])   // s2는 음수이므로 절대값으로 해결

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

int ret,a[26];
string s1, s2;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	cin >> s1>>s2;

	for (auto c : s1) {
		a[c - 'a']++;
	}
	for (auto c : s2) {
		a[c - 'a']--;
	}

	//for (auto i : a) cout << i << " ";
	for (int i = 0; i < 26;++i) {
		if (a[i] != 0) {
			ret += abs(a[i]);
		}
	}

	cout << ret;
}