## 🔒 문제. 신고 결과 받기
def solution(id_list, report, k):
answer = []
## report 중복 신고 제거 ..
report = list(set(report))
## 신고 현황 정리
#### 신고한 사람 기준 ... 딕셔너리 - key:신고 한 사람, value:신고 받은 사람
report_give_dict = { i:[] for i in id_list }
for r1 in report:
if r1.split(" ")[0] in report_give_dict:
report_give_dict[r1.split(" ")[0]].append(r1.split(" ")[1])
#### 신고당한 사람 기준 ... 딕셔너리 - key:신고 받은 사람, value:신고 한 사람
report_take_dict = { i:[] for i in id_list }
for r2 in report:
if r2.split(" ")[1] in report_take_dict:
report_take_dict[r2.split(" ")[1]].append(r2.split(" ")[0])
## key별 value값이 k 이상인 사람 저장 (블랙리스트 대상자)
black = [key for key, val in report_take_dict.items() if len(val) >= k]
## key별 value값에 블랙리스트를 보유한 카운트 저장
report_email_cnt = {i:int() for i in id_list}
for k, v in report_give_dict.items():
for b in black:
if b in v:
report_email_cnt[k] += 1
answer = [v for k, v in report_email_cnt.items()]
return answer
## print(solution(["muzi", "frodo", "apeach", "neo"], ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"], 2))
## print(solution(["con", "ryan"], ["ryan con", "ryan con", "ryan con", "ryan con"], 3))
Python/코테 연습