✔️ code
def solution(id_list, report, k):
#유저 ID 딕셔너리화
id_dict=dict.fromkeys(id_list, 0)
answer=dict.fromkeys(id_list, 0)
#신고 중복 제거
report_set=set(report)
report=list(report_set)
for i in report:
#신고당한 유저
i=i.split()[1]
#유저ID에 해당하는 key값과 비교하여 신고당한 횟수를 누적
if i in id_dict:
id_dict[i]+=1
#만약 value가 k이상이라면 정지 대상
for j in report:
if id_dict[j.split()[1]] >= k:
#정지 유저를 신고한 유저의 값 증가
answer[j.split()[0]]+=1
#answer의 value를 리스트화
answer=list(answer.values())
return answer
📍
key (user) value (신고당한 횟수, 신고한 유저가 메일을 받는 횟수) 와 연결하기 위해 dict를 사용했다.
한 유저가 다른 유저를 중복 신고하는 것은 1번으로 처리되기 때문에 set 메소드로 중복 신고를 제거했다.
유저가 신고당한 횟수를 누적하여 k 이상인지 (정지 대상인지) 판별하고, 정지 대상이라면 해당 유저를 신고한
유저가 메일을 발송받아야 하기 때문에 정지 유저를 신고한 유저의 value를 증가시켜주었다.
>>>
이전에 했던 스도쿠 알고리즘이 떠올랐다. 이것도 얼른 정리해서 올려야지 ...
'알고리즘' 카테고리의 다른 글
[알고리즘] 격자판 회문수 (0) | 2022.02.19 |
---|---|
[알고리즘] 스도쿠 (0) | 2022.02.19 |
[알고리즘] 봉우리 (0) | 2022.02.07 |
[알고리즘] 모래시계 (0) | 2022.02.07 |
[알고리즘] 수들의 합 (0) | 2022.01.28 |