문제
이벤트란, 사용자가 웹 사이트에서 실행하거나, 클릭한 것을 의미한다. 어느 사이트에서 사용자들이 자주 실행하는 이벤트를 정리하려고 한다. 이를 위해서 사용자들이 취할 수 있는 이벤트를 N개로 규정하고, 각각의 이벤트에 1번부터 N번까지 번호를 붙였다.
이어서 M명의 사용자가 사이트에서 이벤트를 실행한 내역을 추출하였다. 추출한 정보를 바탕으로 사용자들이 가장 자주 실행하는 이벤트들을 알아내고자 한다. 한 사람이 같은 이벤트를 여러 번 실행한 경우에도 중복으로 세어준다.
M명의 사용자들이 가장 자주 실행했던 이벤트들을 찾아 출력하시오.
입력
첫째 줄에 이벤트의 개수 N과 사용자의 수 M이 공백을 두고 주어진다.
다음 M개의 줄에는 매 줄마다 i번 사용자가 실행한 이벤트의 개수 k가 주어지고, 이어서 실행한 이벤트의 번호 e1, ..., ek가 공백을 두고 주어진다.
- 1 ≤ N ≤ 100,000
- 1 ≤ M ≤ 1,000
- 1 ≤ k ≤ 100
- 1 ≤ ei ≤ N
- 입력에서 주어지는 모든 수는 정수이다.
import sys
input = sys.stdin. readline
n, m = map(int, input().split())
c = dict()
for _ in range(m):
k_list = list(map(int, input().split()))
for i in k_list[1:]:
if i in c:
c[i] += 1
else:
c[i] = 1
max_count = 0
result = []
for i in c:
max_count = max(c[i], max_count)
for i in c:
if c[i] == max_count:
result.append(i)
result.sort(reverse=True)
print(*result)
※출처
https://multicampus-kdt.goorm.io/lecture/38996/멀티잇-코딩테스트-러닝클래스-python-6월반