Lv1 - 신고 결과 받기

LeeKyoungChang·2022년 4월 19일
0

Algorithm

목록 보기
166/203
post-thumbnail

📚 Lv1 - 신고 결과 받기

신고 결과 받기

 

이해

(1) Dictionary

  • 신고를 k번 이상 받았을 경우 정지된다. 정지된 경우, 그 사람을 신고한 사람에게 메일이 가게 된다.

(2) 신고를 k번 받은 사람만 정지된다. → key = 신고 받은 사람으로 설정

  • key : 신고 받은 사람, value : 신고를 한 사람
  • value의 길이가 k번 이상이라면, 메일이 가게 된다.

 

    dic_report = {id: [] for id in id_list}
    answer = [0] * len(id_list)
    for report in set(reports):
        report = report.split(' ')
        dic_report[report[1]].append(report[0])
  • id_list를 통해 dictionary를 생성한다.
  • answer : 결과 값을 담을 리스트 (메일 받을 횟수)
  • report : (1) 신고 한 사람, (2) 신고 받는 사람
    • 신고 받는 사람의 value에는 신고 한 사람을 넣는다.
    • value의 길이를 보면, 몇 번 신고 당했는지 알 수 있게 된다.

 

    for key, value in dic_report.items():
        if len(value) >= k:
            for v in value:
                answer[id_list.index(v)] += 1
  • 신고 정보가 담긴 Dictionary를 탐색한다.
  • k번 이상일 경우, 신고 한 사람의 위치를 +1 한다.

 

소스

def solution(id_list, reports, k):

    dic_list = {id : [] for id in id_list}
    answer = [0] * len(id_list)

    # key와 value를 넣는다.
    for report in set(reports):
        report = report.split(' ')
        dic_list[report[1]].append(report[0])

    for key, value in dic_list.items():
        if len(value) >= k:
            for v in value:
                answer[id_list.index(v)] += 1

    return answer
스크린샷 2022-04-20 오전 12 04 42

 


참고

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글