Programmers level1 신고 결과 받기

soominlee·2022년 8월 8일
0

🧄 Coding Test

목록 보기
2/9

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
import pandas as pd

def solution(id_list, report, k):
    answer = []
    answer_dict = dict.fromkeys(id_list, 0)
    bad_users = {}
    bad_counts = {}
    
    report = list(set(report))
    for r in report:
        reporter, bad_user = r.split()
        if bad_user not in bad_users.keys():
            bad_users[bad_user] = [reporter]
            bad_counts[bad_user] = 1
        else:
            bad_users[bad_user].append(reporter)
            bad_counts[bad_user] += 1
    
    bad_users_df = pd.DataFrame(list(bad_counts.items()), columns=['bad','cnt'])
    
    mails = bad_users_df['bad'][bad_users_df['cnt']>=k].values
    
    for mail in mails:
        reps = bad_users[mail]
        for rep in reps:
            answer_dict[rep] += 1

    answer = list(answer_dict.values())
        
    return answer
다른 사람 풀이
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
profile
Soominlee

0개의 댓글