if __name__ == "__main__":
import sys
input = sys.stdin.readline
N = int(input())
tag_count = {}
for _ in range(N):
data = input().split()
t = int(data[1])
tags = data[2:]
# 빈도 기록
for tag in tags:
# 만약 tag가 이미 존재하면 +1
if tag in tag_count:
tag_count[tag] += 1
# 없다면 생성
else:
tag_count[tag] = 1
# 가장 많이 등장한 태그의 빈도 찾기
max_freq = max(tag_count.values())
# 가장 많이 등장한 태그가 여러 개 있는지 확인
result = [tag for tag, count in tag_count.items() if count == max_freq]
# 여러개면 하나 -1 아니면 출력
print(-1) if len(result) > 1 else print(result[0])
#include <algorithm>
#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef vector<string> vs;
typedef pair<int, int> pii;
typedef pair<string, int> psi;
typedef unordered_map<string, int> mapsi;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
mapsi tag_count;
for (int i = 0; i < N; i++) {
int id, t;
cin >> id >> t;
string tag;
for (int j = 0; j < t; j++) {
cin >> tag;
tag_count[tag]++;
}
}
// 최대 빈도 찾기
int max_freq = 0;
for (const auto &p : tag_count) {
max_freq = max(max_freq, p.second);
}
// 최대 빈도를 가진 태그들 찾기
vs result;
for (const auto &p : tag_count) {
if (p.second == max_freq) {
result.push_back(p.first);
}
}
// 결과 출력
if (result.size() > 1) {
cout << -1 << "\n";
} else {
cout << result[0] << "\n";
}
return 0;
}
댓글