티스토리 뷰

Lv1.신고 결과 받기


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

 

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

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

programmers.co.kr

이제 맨날 할거임 진짜임..

근데 이건 정말 혼자할려니 어렵더라,,,

공부해요 우리!

아? 저만 공부하면 된다고요?

힘과 능력 주세요..

 


<알아야 할 것>

  • set
  • 딕셔너리 '0' 으로 초기화

- set

한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.

그렇다. 중복이 없어야 한다. list에서 중복을 허용하지 않는 자료형이다.

신고받은 리스트(report)에서 중복을 없앤다.

report = set(report)

- 딕셔너리 '0' 으로 초기화

메일 보낼 횟수, 신고당한 횟수를 딕셔너리로 생성

{ x : 0 for x in key_list }

다음처럼 모든 key에 대해 0으로 초기화하는 코드


<코드>

def solution(id_list, report, k):
    report = set(report)
    alarm_cnt = {x:0 for x in id_list}
    mail_cnt = {x:0 for x in id_list}
    
    for x in report:
        alarm_cnt[x.split()[1]] +=1
    for x in report:
        if alarm_cnt[x.split()[1]] >=k:
            mail_cnt[x.split()[0]] +=1
    
    return list(mail_cnt.values())

 

 

댓글