소요시간:30~40분
해쉬, 딕셔너리를 이용하면 빠르게 풀 수 있는 문제이다.
defaultdict의 사용법을 더 체화할 필요가 있는 것 같다.
처음 채점시 83점이 나왔다. 그 이유는 신고수가 k 보다 많을 경우에 메일1통을 보내야 하는데 신고수가 k개가 될때마다 메일을 보내는 걸로 구현을 했었기 때문인다.
수정 후 100점을 받았다.
from collections import defaultdict
def solution(id_list, report, k):
answer = []
report = list(set(report))
count_dic = defaultdict(int)
mail_dic = defaultdict(set)
result_dic = defaultdict(int)
for r in report:
a, b = r.split(" ")
count_dic[b] += 1
mail_dic[b].add(a)
for id in id_list:
for m in mail_dic[id]:
if (count_dic[id] // k) >= 1:
result_dic[m] += 1
for id in id_list:
answer.append(result_dic[id])
return answer
'Problem Solving > 자료구조' 카테고리의 다른 글
BOJ1406 에디터(리스트 이터레이터문제) *R (0) | 2024.03.06 |
---|---|
BOJ1158 요세푸스 문제 (0) | 2024.03.06 |
Kakao2018 뉴스 클러스터링 (0) | 2023.04.13 |
kakao2018 캐시 (0) | 2023.04.10 |