카테고리 없음

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

송디 2022. 3. 6. 22:32

C++로 PS를 풀다가 지쳐, Python으로 풀면서 환기시켜보려고 한다. 그 첫문제는 난이도 1짜리 문제.

 

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

 

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

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

programmers.co.kr

 

너무 문제 그대로 받아드렸다. 

신고자 : 대상 1, 대상 2 | 신고자2 : 대상 2 ....

이런 형태가 아닌

대상 1 : 신고자1, 신고자2 | 대상 2 : 신고자 1 ...

 

이런식으로 하면 코드도 간단해지고, 중복 문제도 자연스럽게 벗어나게 된다. 

 

def solution(id_list, report, k):
#     
# 1. 빈칸으로 단어 구분
# 2. 딕셔너리 배열
# 주어진 조건에 따라 한 유저가 같은 유저를 여러 번 신고한 경우는 신고 횟수 1회로 처리합니다.

	
    id_report = {id: [] for id in id_list}
    answer = [0] * len(id_list)
    for r in set(report):
        tmp=r.split()
        id_report[tmp[1]].append(tmp[0])
    for key, val in id_report.items():
        if len(val) >= k:
            for v in val:
                answer[id_list.index(v)] += 1
    return answer
728x90