❗ 풀이 과정
- 한 유저를 여러 번 신고할 수 있지만, 동일한 유저에 대해서는 신고 횟수를 1회로 처리된다는 내용이 있지만, 예시 2를 보면 동일한 유저에 대해서 신고를 여러번 한다.
이걸 처리하기 위해서 set()
함수를 썼다.
- report 배열을 보면 신고한 사람과 신고된 사람이 분리되어있지 않고 문자열로 합쳐져있기 떄문에
split()
함수를 통해 분리시켰다.
멤버 별로 신고된 횟수 count
-> k번 이상 신고된 멤버 이름 따로 리스트 만들기
-> 정지된 멤버를 신고한 멤버를 알아내기 위해서 다시 report 변수 써먹기
-> 신고한 멤버 따로 count해주기
-> id_list 기준으로 출력
🤜 풀이 코드
def solution(id_list, report, k):
report=list(set(report))
report_cnt=dict()
report_mem=dict()
r_user=[]
for r in report:
key,v=r.split()
report_cnt[v]=report_cnt.get(v,0)+1
for key, v in report_cnt.items():
if v>=k:
r_user.append(key)
for r in report:
r_u, b_u = r.split()
if b_u in r_user:
report_mem[r_u]=report_mem.get(r_u,0)+1
return [ report_mem.get(id,0) for id in id_list]