코딩공부
[코딩] 프로그래머스 Lv1.신고 결과 받기 (파이썬)
별의 별
2022. 6. 19. 00:37
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())