본문 바로가기
백준 코딩테스트/실버

14425) 문자열 집합 (C++)

by xortl98 2022. 5. 11.
728x90

 출처 

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

 

14425번: 문자열 집합

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

www.acmicpc.net

 내 풀이 

#include<iostream>
#include<map>

using namespace std;

int N = 0, M = 0;
int result = 0;
string input = "";

int main()
{
	cin >> N >> M;

	map<string, bool>mp;

	for (int i = 0; i < N; i++)
	{
		cin >> input;
		mp[input] = true;
	}

	for (int i = 0; i < M; i++)
	{
		cin >> input;

		if (mp[input]) result++;
	}

	cout << result;
}

 해설

맵을 이용해서 풀면 쉽게 풀리는 문제이다. 

 

 느낀점 

35%정도까진 오르다가 계속 시간초과가 나서 결국 답을 찾아보니 Map이라는걸 이용해서 푸는 문제였다. 

Map에 대해서 좀 알아봐야겠다.