동캄의 코딩도장

프로그래머스 level1 [신고결과받기] 파이썬 본문

코테/프로그래머스

프로그래머스 level1 [신고결과받기] 파이썬

동 캄 2022. 2. 9. 11:38

https://programmers.co.kr/learn/courses/30/lessons/92334

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

# 프로그래머스 신고결과받기
def solution(id_list, report, k):
    answer = []
    ban = {}
    mail = {}
    for id in id_list:
        ban[id] = ''
        mail[id] = 0
    report = list(set(report))
    for re in report:
        a, b = re.split()
        ban[b] += a+' '
    for id in id_list:
        l = list(map(str, ban[id].split()))
        if(len(l) >= k):
            for name in l:
                mail[name] += 1
    for val in mail:
        answer.append(mail[val])
    return answer

ban[id] (신고당한 사람의 id)에는 신고한 사람들의 이름을 연결한다.

신고한 사람들의 수가 k보다 크거나 같으면, 신고한 사람들의 메일 수, 즉 mail[name]를 하나 증가시켜 준다.