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
반응형
'Agorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 1 실패율 (0) | 2022.06.22 |
---|---|
프로그래머스 Level 2 메뉴 리뉴얼 (0) | 2022.06.22 |
프로그래머스 Level 1 신규 아이디 추천 (0) | 2022.06.21 |
프로그래머스 Level 2 오픈채팅방 (0) | 2022.06.16 |
프로그래머스 Level 1 로또의 최고 순위와 최저 순위 (0) | 2022.06.16 |