코딩테스트/프로그래머스

[프로그래머스] Lv1. 신고 결과 받기 in Python

초코._.초 2025. 4. 22. 11:47

 

2022 KAKAO BLIND RCRUITMENT

 


[문제]

 

출처 - 프로그래머스

 


풀이 Tip

각 id 별 신고한 id와 자신이 신고 당한 횟수를 관리하는 Dictonary 만들기

 

[풀이과정]

1, 딕셔너리 컨프리헨션을 이용해 id별 신고한 id, 자신이 신고당한 횟수를 관리하는 complainDict 생성

2. # finall result

    내가 신고한 id 딕셔너리에 방문해서 신고 당한 횟수(cnt)가 k 이상이면 answer에 값 추가

 

 


[정답] 파이썬 풀이

 

def solution(id_list, report, k):
    answer = []
	
    # cnt : reported count
    complainDict = {id :{'Report' : [], 'cnt': 0} for id in id_list}

	
    for rep in report :
        reportId, reportedId = rep.split(' ')[0], rep.split(' ')[1]

        if   reportedId not in  complainDict[reportId]['Report']:
            complainDict[reportId]['Report']  += [reportedId]
            complainDict[reportedId]['cnt'] += 1

    # finall result
    for id in id_list :
        result = 0
        for com in complainDict[id]['Report'] :
            if complainDict[com]['cnt'] >= k :
                result +=1
        answer.append(result)

    return answer