본문 바로가기

백준/C++

[C++] 백준 14425번 - 문자열 집합

728x90

 

문제 14425번

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

 

set은 중복을 없애고 삽입 순서에 상관없이 정렬한 상태로 입력된다. 이를 이용하여 집합 s 문자열들을 입력받아 set에 삽입한 후 비교해야 할 다음 문자열들과 비교해준다. find를 사용하여 비교해야 할 값들이 set에 저장되어 있다면 count해준다. 여기서 find를 이용하여 해당 값이 없다면 str.end()형태로 반환해주기 때문에 이 값이 아닐 때라는 조건을 달아야 한다.

 

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

int main() {
	int n, m, count = 0;
	string s;
	set <string> str;

	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> s;
		str.insert(s);
	}
	for (int i = 0; i < m; i++) {
		cin >> s;
		if (str.find(s) != str.end()) {
			count++;
		}
	}

	cout << count;

	return 0;
}

 

 

 

 

728x90