코-딩/프로그래머스

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

힞뚜루마뚜루 2023. 2. 13. 18:11
728x90

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

난이도 : Lv.1

 

풀이
from collections import defaultdict

def solution(id_list, report, k):
    mailCnt = {}
    for id in id_list:
        mailCnt[id] = 0
    
    reportedPerson = {}
    
    for rpt in report:
        s, t = rpt.split(" ") 
        if t not in reportedPerson:
            reportedPerson[t] = [s]
        elif s not in reportedPerson[t]:
            reportedPerson[t].append(s)
    
    for rp in reportedPerson.values():
        if len(rp) >= k:
            for user in rp:
                mailCnt[user] += 1
                
    return list(mailCnt.values())

위 코드를 깔끔하게 바꾸면,,,

 

다른 풀이
def solution(id_list, report, k):
    answer = [0] * len(id_list)    
    reports = {x : 0 for x in id_list}

    for r in set(report):
        reports[r.split()[1]] += 1

    for r in set(report):
        if reports[r.split()[1]] >= k:
            answer[id_list.index(r.split()[0])] += 1

    return answer

 

728x90