GitHubSeob

C++ / 백준 / 14425 / 문자열 집합 본문

Baekjoon/Silver

C++ / 백준 / 14425 / 문자열 집합

GitHubSeob 2022. 3. 21.

문제

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

 

14425번: 문자열 집합

첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다.  다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어

www.acmicpc.net

문제풀이

unordered_map을 이용해서 풀었다.

문자열을 입력받을 때 insert({문자열, 1})을 하여 map에 추가한다.

N개의 입력이 끝나고 M개의 문자열을 입력받을 때 map[문자열] 값을 answer에 계속 더해준다.

(map에 없는 문자열을 입력받으면 map[문자열] 값은 0이므로)

 

 

코드

#include <iostream>
#include <unordered_map>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	unordered_map<string, int>set;
	int N(0), M(0), idx(0), answer(0);
	cin >> N >> M;

	string s;
	for (idx = 0; idx < N; ++idx) {
		cin >> s;
		set.insert({ s,1 });
	}

	for (idx = 0; idx < M; ++idx) {
		cin >> s;
		answer += set[s];
	}

	cout << answer;
}