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
'백준 > C++' 카테고리의 다른 글
[C++] 백준 11478번 - 서로 다른 부분 문자열의 개수 (0) | 2024.06.14 |
---|---|
[C++] 백준 7785번 - 회사에 있는 사람 (1) | 2024.06.13 |
[C++] 백준 11721번 - 열 개씩 끊어 출력하기 (0) | 2024.06.12 |
[C++] 백준 9012번 - 괄호 (0) | 2024.06.11 |
[C++] 백준 10039번 - 평균 점수 (0) | 2024.06.09 |