[프로그래머스/Python] 신고 결과 받기

Sujin Lee·2022년 6월 30일
0

코딩테스트

목록 보기
77/172
post-thumbnail

문제

프로그래머스 - 신고 결과 받기

해결 과정

  • 주석 참고

시행 착오

  • 정말 하나하나 구현했다.

풀이

from collections import defaultdict
def solution(id_list, report, k):
    # 처리 결과 메일을 받을 유저들
    user_id = []
    # 유저별 처리 결과 메일을 받은 횟수
    answer = []
    # 신고 당한 유저들 {신고 당한 유저: [신고한 유저들]}
    notify = defaultdict(list)
    # 신고 당한 횟수 {유저: 횟수}
    cnt = defaultdict(int)
    
    # 신고 당한 유저들
    for i in report:
        a,b = i.split()
        if a not in notify[b]:
            notify[b].append(a)
        
    # 각 유저별 신고당한 횟수
    for i in notify:
        cnt[i] = len(notify[i])
    
    # 신고당한 횟수가 k이상이면 user_id에 삽입
    for i in cnt:
        if cnt[i] >= k:
            user_id.append(notify[i])
    
    # 리스트 합하기  
    user_id = sum(user_id,[])
    
    # 각 유저별 결과 메일 받은 횟수
    for i in id_list:
        answer.append(user_id.count(i))

    return answer
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글