본문 바로가기

코딩테스트/Python

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

문제


https://programmers.co.kr/learn/courses/30/lessons/92334?language=python3 

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

 

 

 

풀이


def solution(id_list, report, k):
    report = set(report) # 신고 중복 제거
    
    dic = {i:0 for i in id_list} # 신고당한 횟수
    dic2 = {i:0 for i in id_list} # 신고 대상이 k회 이상 신고 된 횟수 
    
    # 신고 횟수 구하기
    for r in report:
        arr = r.split()
        dic[arr[1]]+=1
    
    # 신고 대상이 k회 이상 신고 된 횟수 구하기
    for r in report:
        arr = r.split() 
        if dic[arr[1]] >= k: # k회 이상이면
            dic2[arr[0]] += 1 # +1
    
    return list(dic2.values())

 

신고 당한 횟수를 유저별로 구해준 후, 신고 대상이 k회 이상 신고 된 횟수를 구해준다.