문제 링크
풀이 과정
•
본 문제는 코드 블록을 통해 풀이를 제시하였습니다.
전체 코드
from collections import defaultdict
def solution(id_list, report, k):
'''
1. 각 유저 별 신고 당한 횟수를 저장
2. 각 유저 별 신고를 한 id를 저장
- 동일한 유저에 대한 신고 횟수는 1회로 처리
-> Set 자료구조 활용!
3. 정지 기준 횟수와 비교 후 정답 산출
'''
answer = [0 for _ in range(len(id_list))]
# 각 유저 별 신고 당한 횟수
reported_dict = {id: 0 for id in id_list}
# 각 유저 별 신고를 한 id 목록
report_dict = {id: set([]) for id in id_list}
for report_info in report:
users_info = report_info.split(' ')
reporter = users_info[0]
reported_user = users_info[-1]
# A 유저가 B 유저를 최초로 신고한 경우에만 신고 횟수를 갱신
if reported_user not in report_dict[reporter]:
report_dict[reporter].add(reported_user)
reported_dict[reported_user] += 1
for user_idx, user in enumerate(id_list):
for reported_user in report_dict[user]:
if reported_dict[reported_user] >= k:
answer[user_idx] += 1
return answer
Python
복사