본문 바로가기

코딩테스트

신고 결과 받기

def solution(id_list, report, k):
    answer = []
   
    #report에서 중복되는 항목 제거
    report = list(set(report))
   
    #id_list를 key로 갖는 value 0인 딕셔너리 생성
    id_dict = {id : 0 for id in id_list}
    id_dict2 = {id : 0 for id in id_list}
   
    #split 해서 신고자와 신고 당한 사람 나누기
    splitted_report = [r.split() for r in report]

    #신고 당했을 경우 id_dict에 value 1씩 더해줌
    for report_idx in range(len(report)):
        id_dict[splitted_report[report_idx][1]] += 1

    #신고 당한 횟수 k번 이상인 경우 신고한 사람 id_dict2에 value 1씩 더해줌    
    for report_idx in range(len(report)):
        if id_dict[splitted_report[report_idx][1]] >= k:
            id_dict2[splitted_report[report_idx][0]] += 1

    #id_dict의 value값 answer에 추가        
    answer = list(id_dict2.values())

    return answer

'코딩테스트' 카테고리의 다른 글

숫자 문자열과 영단어  (0) 2022.05.17
k번째 수 구하기  (0) 2022.05.12
크레인 인형뽑기 게임  (0) 2022.05.07