나의 풀이
- 유저가 신고한 사용자 정보를 저장하는 대신, 유저를 신고한 사용자 정보를 저장했다.
def solution(id_list, report, k):
# 사용자를 신고한 유저
user_report = {}
report = list(set(report))
# 신고 처리
for i in report:
a, b = i.split(" ")
# 신고 처리
if b not in user_report:
user_report[b] = set()
user_report[b].add(a)
# 메일 개수
mail_cnt = dict(zip(id_list, [0] * len(id_list)))
for uid, u_list in user_report.items():
if len(u_list) >= k:
# 해당 유저를 신고한 유저 모음
for u in u_list:
mail_cnt[u] += 1
answer = []
for u in id_list:
answer.append(mail_cnt[u])
return answer
다른 사람 풀이
- [ic]index[/ic] 함수를 사용해 id_list 순서를 맞췄다.
def solution(id_list, report, k):
answer = [0] * len(id_list)
dic_report = {id: [] for id in id_list} # 해당 유저를 신고한 ID
for i in set(report):
i = i.split()
dic_report[i[1]].append(i[0])
for key, value in dic_report.items():
if len(value) >= k:
for j in value:
answer[id_list.index(j)] += 1
return answer