[프로그래머스] 신고 결과 받기 - python

코린이·2022년 5월 20일
0

프로그래머스

목록 보기
1/22

📢 신고결과 받기 문제

문제 바로 가기

🔎 풀이

사용언어 : python

  1. 먼저 set을 이용하여 report 값의 중복을 없애기
  2. defaultdict 사용
    • from collections import defaultdict #외부함수라서 import 하기
    • defaultdict()을 사용하여 딕셔너리 값의 기본값을 지정할 수 있다.
    • defaultdict(int)를 사용하면 디폴트값을 0으로 할 수 있습니다.
    • defaultdict(set)를 하면 디폴트값이 set인 딕셔너리이다.
    • set은 add()를 사용해서 항목을 추가한다.

💻 코드

from collections import defaultdict 

def solution(id_list, report, k):
    report = set(report)
    reported_by_user = defaultdict(set) # 유저가 신고한 사람들 목록
    user_report_count = defaultdict(int) # 유저가 신고당한 횟수
    
    stop = [] # 정지된 유저들
    answer = []
    for i in report:
        user,reported_user = i.split()
        user_report_count[reported_user] += 1 
        reported_by_user[user].add(reported_user)
        
        if user_report_count[reported_user] == k:
            stop.append(reported_user)
            
    for x in id_list:
        count = 0
        for y in reported_by_user[x]:
            if y in stop:
                count +=1
        answer.append(count)
    return answer



import sys

id_list = sys.stdin.readline()

report = sys.stdin.readline()
profile
초보 개발자

0개의 댓글