[Programmers - Lv.1] 신고 결과 받기

corgiLoaf·2022년 11월 18일
0

programmers

목록 보기
4/7

✏️ 문제

신고 결과 받기




✔️ 정답

문제를 푸는 포인트는 dict를 만들 때 key 가 신고한 사람 이 아니라 신고당한 사람의 id가 되어야 한다는 것이다.

한 사람이 똑같은 사람을 여러번 신고하는 것은 1번만 카운트되므로 set 으로 바꿔주었고, 신고당한 사람을 key로 dict를 만들어 value로는 해당 key를 신고한 사람들의 list 를 갖도록 하여 list 의 길이를 이용하여 몇 번 신고당했는지 셀 수 있도록 했다.
def solution(id_list, report, k):
    report = set(report)
    blacklist = {id : [] for id in id_list}
    result = [0] * len(id_list)
    
    for r in report:       
        id, val = r.split()
        blacklist[val].append(id) # key를 신고한 id list
    
    for id, lst in blacklist.items():   
        if len(lst) >= k:
            for id in lst:
                idx = id_list.index(id)
                result[idx] += 1
                
    return result
profile
삽질하고 기록하기

0개의 댓글