문제 링크
https://programmers.co.kr/learn/courses/30/lessons/92334
이 문제는 같은 신고 건수를 처리하는게 키포인트
문제에서 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.
라는 항목을 주목해 보면 [ . . . "A신고자 B피신고자", "A신고자 B피신고자", "A신고자 B피신고자"] 형태로 주어질 경우 [ . . . "A신고자 B피신고자"]와 동일하게 처리한다는 것을 알 수 있다.
이 말은 같은 원소의 중복을 허용하지 않는다와 같은 뜻으로 생각할 수 있다. set 안에 넣어서 해결할 수 있다.
def solution(id_list, report, k):
set_report = set(report)
answer = [0] * (len(id_list))
dict_report = {}
for i in id_list:
dict_report[i] = []
for reporting in set_report:
user_id, reported_id = reporting.split()
dict_report[reported_id].append(user_id)
for key in dict_report:
if len(dict_report[key]) >= k:
for i in dict_report[key]:
answer[id_list.index(i)] = answer[id_list.index(i)] + 1
return answer