728x90
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/92334
난이도 : Lv.1
풀이
from collections import defaultdict
def solution(id_list, report, k):
mailCnt = {}
for id in id_list:
mailCnt[id] = 0
reportedPerson = {}
for rpt in report:
s, t = rpt.split(" ")
if t not in reportedPerson:
reportedPerson[t] = [s]
elif s not in reportedPerson[t]:
reportedPerson[t].append(s)
for rp in reportedPerson.values():
if len(rp) >= k:
for user in rp:
mailCnt[user] += 1
return list(mailCnt.values())
위 코드를 깔끔하게 바꾸면,,,
다른 풀이
def solution(id_list, report, k):
answer = [0] * len(id_list)
reports = {x : 0 for x in id_list}
for r in set(report):
reports[r.split()[1]] += 1
for r in set(report):
if reports[r.split()[1]] >= k:
answer[id_list.index(r.split()[0])] += 1
return answer
728x90