-
[Python] programmers 신고 결과 받기알고리즘/카카오기출 2022. 1. 22. 12:00728x90
1. 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/92334
2. 문제 요약
- 정지 기준이 되는 신고 횟수 k가 매개변수로 주어질 때, 각 유저별로 처리 결과 메일을 받은 횟수를 배열에 담아 return
3. 아이디어 정리
- 누가 누구를 신고했는지 dict 담기 & 신고당한 횟수 세기
- 이용자별로 자신이 신고한 사람이 k번 이상이면 처리된 횟수 + 1
4. 문제 풀이
4-1. 내 풀이
from collections import defaultdict def solution(id_list, report, k): answer = list() count = defaultdict(int) # 몇번 신고했는지 user = defaultdict(set) # 신고 리스트 # 1. 누가 누구를 신고했는지 dict 담기 & 신고당한 횟수 세기 for r in report: a, b = r.split() # a가 b를 신고 if b not in user[a]: # 같은 사람이 1번 이상 신고 x user[a].add(b) count[b] += 1 # 신고당한 수 # 2. 이용자별로 자신이 신고한 사람이 k번 이상이면 처리된 횟수 + 1 for id in id_list: result = 0 for u in user[id]: if count[u] >= k: result += 1 answer.append(result) return answer
5. 결론
- 구현 문제
'알고리즘 > 카카오기출' 카테고리의 다른 글
[Python] programmers 방금 그곡 (0) 2022.02.11 [Python] programmers 3차 압축 (0) 2022.02.11 [Python] programmers 양궁대회 (0) 2022.01.23 [Python] programmers k진수에서 소수 개수 구하기 (0) 2022.01.22 [Python] programmers 주차요금계산 (0) 2022.01.22