always_here

지식을 공유하고 함께 성장하는 엔지니어 as_always 입니다

AS_ALWAYS

알고리즘

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

nauung_always 2022. 7. 4. 19:53
728x90

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

 

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

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

programmers.co.kr

 

id_list = ["muzi", "frodo", "apeach", "neo"]
report = ["muzi frodo","apeach frodo","frodo neo","muzi neo","apeach muzi"]
k = 2

  1. report = list(set(report)) 으로 report 중복 제거
  2. n_dic (신고 당한 횟수 저장) 딕셔너리
  3. dic (정지된 ID 개수 저장) 딕셔너리

신고 당한 횟수 딕셔너리에 저장 후 횟수가 k 이상이라면 dic 딕셔너리에 저장하고,
dic 딕셔너리의 value를 리스트 형태로 반환해주었다.

전체 코드

def solution(id_list, report, k):
    report = list(set(report))
    n_dic={}
    dic={}
    for i in id_list:
        n_dic[i]=0
        dic[i]=0
    for i in report:
        aname,bname = i.split()
        n_dic[bname]+=1
    for i in report :
        aname,bname = i.split()
        if n_dic[bname] >= k:
            dic[aname]+=1

    return list(dic.values())

print(solution(id_list, report, k))
728x90