[2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기

김아현·2023년 7월 17일
0

코딩테스트

목록 보기
19/26

문제 설명

  • 각 유저는 한 번에 한명의 유저를 신고할 수 있다.
  • 여러번 신고하더라도, 같은 유저에 대한 신고는 1회로 처리된다
  • k번 이상 신고된 유저의 신고 결과는 마지막에 정지 여부를 토대로 해당 유저를 신고한 모든 유저에게 발생한다.

제출코드

def solution(id_list, report, k): 
    hack = {id: [] for id in id_list}

    for case in report:
        a, b = case.split(' ')

        if a not in hack[b]:
            hack[b].append(a)

    result = [0] * len(id_list)
    for idx, user in enumerate(id_list):
        for reported_users in hack.values():
            if user in reported_users and len(reported_users) >= k:
                result[idx] += 1

    print(result)
    return result

id_list = ["muzi", "frodo", "apeach", "neo"]
report = ["muzi frodo", "apeach frodo", "frodo neo", "muzi neo", "apeach muzi"]
k = 2

print(solution(id_list, report, k))

IDE에서 푸느라 id_list, report, k를 제거하지 않고 제출했는데 통과되긴 한다..

정리한 코드

def solution(id_list, report, k): 
    hack = {id: [] for id in id_list}

    for case in report:
        a, b = case.split(' ')

        if a not in hack[b]:
            hack[b].append(a)

    result = [0] * len(id_list)
    for idx, user in enumerate(id_list):
        for reported_users in hack.values():
            if user in reported_users and len(reported_users) >= k:
                result[idx] += 1

    return result
profile
멘티를 넘어 멘토가 되는 그날까지 파이팅

0개의 댓글