알고리즘/프로그래머스
[2022 KAKAO BLIND RECRUITMENT] 신고 결과 받기
래울
2022. 6. 24. 01:30
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
풀긴 풀었는데, 효율성이 좋을지는 모르겠다.
유저 : (신고한 유저목록) 과 같은 자료구조를 만들고 , 게시판 이용이 정지되는 유저목록을 구해서
교집합 연산 후에 개수를 세서 발송해야하는 메일 개수를 구하면된다.
from collections import defaultdict
def solution(id_list, report, k):
result, ban_id = [], []
users, reported = dict(), dict()
for i in id_list:
users[i] = set()
reported[i] = 0
for r in set(report):
r1, r2 = r.split(' ') #신고자/피신고자
reported[r2] += 1
users[r1].add(r2)
if reported[r2] >= k:
ban_id.append(r2)
for u in users:
result.append(len(set(users[u]) & set(ban_id)))
return result