본문 바로가기
코딩테스트/파이썬

[python] 이벤트 정리

by onggury 2023. 6. 27.

문제

이벤트란, 사용자가 웹 사이트에서 실행하거나, 클릭한 것을 의미한다. 어느 사이트에서 사용자들이 자주 실행하는 이벤트를 정리하려고 한다. 이를 위해서 사용자들이 취할 수 있는 이벤트를 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월반