오늘의 문제 : 회전초밥
dict와 list를 적절히 활용하여 풀 수 있었다.
이 문제 시간초과가 나지 않으려면, 사람별로 초밥리스트를 짜는 게 아니라, 초밥별로 대기하는 사람의 리스트를 짜면 시간초과가 나지 않는다.
import sys
n, m = map(int, sys.stdin.readline().split())
sushi_wait = dict()
ans = [0 for _ in range(n+1)]
for i in range(1, n+1) :
k, *guests = map(int, sys.stdin.readline().split())
for guest in guests :
if guest not in sushi_wait :
sushi_wait[guest] = [i]
else :
sushi_wait[guest].append(i)
sushis = map(int, sys.stdin.readline().split())
for sushi in sushis :
if sushi in sushi_wait and len(sushi_wait[sushi]) > 0 :
eater = sushi_wait[sushi][0]
sushi_wait[sushi].remove(eater)
ans[eater] += 1
print(*ans[1:])