카테고리 없음

2022 KAKAO BLIND RECRUITMENT : 신고 결과 받기

이도울 2023. 11. 13. 15:34
SMALL

한 유저가 중복으로 신고하는 것을 방지하는 것은 set 형으로 만들어서 중복을 제거할 수 있다.

 

이 후, user별로 신고한 id와 신고당한 횟수를 저장할 딕셔너리를 생성한다.

 

report를 순회하면서 user가 신고한 정보를 저장하고, cnt에는 신고당한 유저의 횟수를 증가시킨다.

 

그 다음 user list를 돌아가면서 유저가 신고했던 유저가 k번 이상 신고되었는지를 파악한 후에, k번 이상 신고 당했으면 result를 1씩 증가시키고, 처리 결과 메일을 받은 횟수를 배열에 추가한다.

 

이후 answer 배열을 출력하면 된다.

from collections import defaultdict

def solution(id_list, report,k):
    answer = []
    # 중복 신고 제거
    report = list(set(report))
    
    # user별 신고한 id 저장
    user = defaultdict(set)
    # # user별 신고당한 횟수 저장
    cnt = defaultdict(int)
	
    for r in report:
        a, b = r.split(" ")
        user[a].add(b)
        cnt[b] += 1
        
    for i in id_list:
        result = 0
        for u in user[i]:
            if cnt[u] >= k:
                result += 1
        answer.append(result)
    return answer
LIST