본문 바로가기
TIL - 프로그래밍/Python 알고리즘

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

by chaemj97 2022. 5. 29.
728x90

https://programmers.co.kr/learn/courses/30/lessons/92334

 

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

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

programmers.co.kr


  • 코드
def solution(id_list, reports, k):
    N = len(id_list)
    answer = [0] * N
    # 신고 당한 사람
    reported = []
    # {신고 한 사람 : 신고 당한 사람}
    reportDic = {id: [] for id in id_list}
    # set으로 중복 제거
    for i in set(reports):
        report = i.split(' ')
        reported.append(report[1])
        reportDic[report[0]].append(report[1])
    # k번 이상 신고 당한 사람 == 정지 된 사람
    K = []
    for j in id_list:
        if reported.count(j) >= k:
            K.append(j)
    # 메일 받는 횟수 구하기
    for key, value in reportDic.items():
        for k in K:
            # 내가 신고해서 정지된 사람
            if k in value:
                answer[id_list.index(key)] += 1
    return answer
print(solution(["con", "ryan"]	,["ryan con", "ryan con", "ryan con", "ryan con"],	3))
728x90
반응형

댓글