문제 풀이/BOJ 문제 풀이

[BOJ알고리즘, C++]#14425_문자열 집합

Hardii2 2022. 12. 4. 19:59

 

 

[BOJ 알고리즘, C++] #14425_문자열 집합, Map

 

BOJ 알고리즘 문제 풀이, 14425_문자열 집합 문제

Map 컨테이너를 활용하여 집합에 속해있는 문자열을 선별합니다.

 


 

문제

 

풀이
  1. Map 컨테이너 자료구조를 활용하는 아주 간단한 문제입니다.
  2. 먼저, map <string , bool>을 선언하고, 집합 S에 해당하는 문자열을 Key - 간단한 Boolean 변수를 Value로 삽입합니다
  3. 다음으로, 주어진 문자열을 Key로 Map 컨테이너에서 탐색을 진행하는 방향으로 구현했습니다.
  4. 이때, "operator []" 는 Map에 없는 새로운 "Key"값으로 수행하면 임의의 Value가 삽입되기 때문에, 집합 S의 문자열들은 모두 "true" 변수와 짝지어 놓도록 합니다!

 

코드
#include <iostream>
#include <map>
#include <string>
using namespace std;

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

    int N, M;
    int cnt = 0;
    string str;
    map<string, bool> m;

    cin >> N >> M;

    for(int i=0; i<N; i++)
    {   
        cin >> str;
        m.insert(make_pair(str, true));
    }

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

        if(m[str] == true)
            cnt++;
    }

    cout << cnt << endl;
}