불량이용자를 신고해서 해당id가 k회이상 경고시 신고한 모든사람에게 메일을 보낸다. 유저가 받은 메일의 개수의 리스트를 출력하는 문제

report를 검색해 각 유저들이 받은 경고를 수집한다.

경고가 k회 이상인것만 answer에 기록한다. 

def solution(id_list, report, k):
    answer = [0]*len(id_list)
    reply = { id:set() for id in id_list}
    for r in report:
        n1, n2 = r.split()
        reply[n2].add(n1)
    for i in reply:
        if len(reply[i]) >= k:
            for j in reply[i]:
                answer[id_list.index(j)] += 1
    return answer

id_list=["muzi", "frodo", "apeach", "neo"]
report=["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"]
k=2
solution(id_list, report, k)

다른분 예 id 검색을 report를 검색하면서 만들고 있다

def solution(id_list, report, k):
    a = {}
    d = {} # d[i] = i를 신고한 이용자들의 집합
    for i in id_list:
        a[i] = 0
        d[i] = set()
    for i in report:
        i = list(i.split())
        d[i[1]].add(i[0])
    for i in d:
        if len(d[i]) >= k:
            for j in d[i]:
                a[j] += 1
    answer = []
    for i in id_list:
        answer.append(a[i])
    return answer

+ Recent posts