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

iamjinseo·2022년 7월 8일
0

문제풀이-Python

목록 보기
21/134

레벨1

def solution(id_list, report, k):
    # answer 리스트 만들기
    # 신고에 참가한 id 개수만큼의 크기 가짐
    answer = [0] * len(id_list)
    
    # 신고횟수 나타내는 딕셔너리 만들기
    # id 리스트에서 id 하나씩 가져와서 그 id를 key로 하고 모든 value는 0으로 함
    reports = {x : 0 for x in id_list}
    
    # 중복이 제거된 신고 리스트에서 하나씩 뽑아오기
    for re in set(report):
        # 신고 건 하나를 가져와 공백으로 나뉜 걸 쪼개면 0번에는 신고자, 1번에는 신고당한 사람이 나옴.
        # 그 신고 당한사람의 이름(1번인덱스)을 key로 하여 value(신고횟수) 1 상승 
        reports[re.split()[1]]+=1
        
    # 신고 건수에서
    for re in set(report):
        # 만약 신고당한사람의 신고횟수가 k이상이면
        if reports[re.split()[1]] >= k:
            # 해당 신고자에게 메일 발송 +1
            answer[id_list.index(re.split()[0])]+=1 
            
            #신고자(0번인덱스)의 값을 얻어내어 그 값이 id_list에서 몇번째인지 알아낸다.
            # 알아낸 인덱스는 answer의 인덱스와 같은 의미(같은 유저라는 뜻)이므로 더하기를 해줌
        
    return answer
profile
일단 뭐라도 해보는 중

0개의 댓글