매일 BOJ

(매일 BOJ) C++ 14425번 문자열 집합

norepinephrine 2025. 8. 1. 14:27

이번 문제는 14425번 문자열 집합이다.

접근법

  • 문자열을 빠르게 검색할 수 있는 자료구조가 필요함 > 중복이 없고, 정렬된 상태를 유지하는 set<string> 사용
  • 각 문자열을 탐색할 때는 s.find(str)을 사용하면 O(log N) 시간 내 탐색 가능

작성코드

#include <bits/stdc++.h>
using namespace std;

int main(void){
    ios::sync_with_stdio(false); cin.tie(0);
    int N,M;
    cin >> N >> M;
    set<string> s;
    for(int i = 0; i < N; i++){
        string str;
        cin >> str;
        s.insert(str);
    }

    int count = 0;

    for(int i = 0; i < M; i++){
        string str;
        cin >> str;
        if (s.find(str) != s.end()){
            count += 1; 
        }
    }

    cout << count;
}