PS

BOJ 8975 : PJESMA

lickelon 2024. 12. 25. 17:07
  • 문제 링크 : boj.kr/8975
  • 난이도 : S5
  • 태그 : 문자열, 맵

코드

#include <bits/stdc++.h>

#define all(x) (x).begin(), (x).end()

#define INF 0x7FFFFFFF

using namespace std;

using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    int n;
    cin >> n;
    map<string, int> _m;
    for(int i = 0; i < n; i++) {
        string input;
        cin >> input;
        _m[input] = 0;
    }

    int m;
    cin >> m;
    int cnt = 0;
    for(int i = 0; i < m; i++) {
        string input;
        cin >> input;
        if(_m.find(input) != _m.end()) {
            _m[input]++;
            if(_m[input] == 1) cnt++;
            if(cnt*2 >= n) {
                cout << i+1;
                break;
            }
        }
    }
    return 0;
}

풀이

맵을 이용해 제목에 나온 단어를 저장한다.

가사에 나온 단어들을 맵에서 찾으며 처음으로 나오는 단어의 수를 센다.

728x90

'PS' 카테고리의 다른 글

BOJ 25369 : 카드 숫자 곱을 최소로 만들기  (0) 2024.12.27
BOJ 31563 : 수열 회전과 쿼리  (0) 2024.12.26
BOJ 15886 : 내 선물을 받아줘 2  (0) 2024.12.24
BOJ 32748 : f(A + B)  (0) 2024.12.23
BOJ 15903 : 카드 합체 놀이  (0) 2024.12.22