매일 조금씩

백준 1919번: 애너그램 만들기 본문

알고리즘

백준 1919번: 애너그램 만들기

mezo 2020. 1. 19. 15:42
728x90
반응형

 

 

 

 

 

 

처음엔 단순히 string으로 두 단어 입력받아서 for 문으로 알파벳 하나씩 겹치는지 확인하자. 라고 생각했지만

그런경우 연속된 같은 알파벳이 등장하거나 할때 문제가 발생한다.

 

따라서 두 단어에 들어가는 알파벳의 갯수를 각각 저장할 알파벳 배열 두개를 사용하여

마지막에 그 두 배열을 비교해서 숫자가 같지 않을 경우 두 수의 차를 count++; 시키는 방식으로 하였다.

 

 

 

#include <iostream>
#include <string>
#include <vector>
using namespace std;

 int word1[26], word2[26];

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

	string a, b;
	cin >> a >> b;
	
	for (int i = 0; i < a.length(); i++) 
		word1[a[i] - 'a']++;
	for (int i = 0; i < b.length(); i++)
		word2[b[i] - 'a']++;

	int cnt = 0;
	for (int i = 0; i < 26; i++) {
		if (word1[i] != word2[i])
			cnt += abs(word1[i] - word2[i]);
	}
	cout << cnt << endl;
	return 0;
}
728x90
반응형

'알고리즘' 카테고리의 다른 글

백준 2897번: 몬스터 트럭  (0) 2020.02.09
백준 10769번: 행복한지 슬픈지  (0) 2020.02.08
백준 2857번: FBI  (0) 2020.01.18
백준 10808번: 알바벳 개수  (0) 2020.01.18
백준 5622번: 다이얼  (0) 2020.01.18