- 문제 링크 : 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 |