Agorithm/프로그래머스
프로그래머스 Level 1 신고 결과 받기
kimjinho1
2022. 6. 21. 22:54
728x90
반응형
문제 상황에 맞는 적절한 자료구조를 생성하고 활용해야 되는 문제다.
요즘 카카오 초반 문제 특징인 것 같은데, 이 문제의 경우에는 2개의 Dictionary를 사용했다.
python의 defaultdict를 거의 처음 사용해봤는데 꽤 좋은 것 같다.
dict의 메서드인 setdefault도 사용해봤지만 defaultdict 쪽이 조금 더 편한 것 같다.
풀이
1. 유저별 신고한 id를 저장하는 report_user_dict, 유저별 신고당한 횟수를 저장하는 report_cnt_dict를 생성한다.
2. 위의 두 사전을 사용해 유저가 신고한 id가 k번 이상인지 확인하고 카운트해준다.
from collections import defaultdict
def solution(id_list, report, k):
report_user_dict = defaultdict(set)
report_cnt_dict = defaultdict(int)
ans = []
for arg in set(report):
id, reported_id = arg.split()
report_user_dict[id].add(reported_id)
report_cnt_dict[reported_id] += 1
for id in id_list:
cnt = 0
for reported_id in report_user_dict[id]:
if report_cnt_dict[reported_id] >= k:
cnt += 1
ans.append(cnt)
return ans
728x90
반응형