🚨 프로그래머스 Level 1 - 신고 결과 받기
2022 KAKAO BLIND RECRUITMENT
✏️ 문제
https://programmers.co.kr/learn/courses/30/lessons/92334
코딩테스트 연습 - 신고 결과 받기
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의
programmers.co.kr
입출력 예
💡 해결방법
report_dic : 유저가 신고한 사람들을 딕셔너리를 이용해 저장한다.
report는 [유저ID 신고당한ID]로 이루어져 있으므로 유저ID를 key 값으로 두고, value 값은 신고당한 ID의 리스트로 저장한다.
report_cnt : 각각의 유저가 몇번 신고당했는지 저장하기 위해 딕셔너리를 이용한다.
key값을 유저ID로 두고, 반복문이 돌면서 신고당한 ID의 value값을 1씩 증가한다.
딕셔너리를 돌면서 만약 신고당한 리스트에 있는 유저가 k번 이상 신고당했을 경우 res값을 올려준다.
res값은 answer 리스트에 저장한다. 딕셔너리에 있는 유저를 도는 순서는 id_list 순서대로 진행하므로 그대로 append하면 된다.
👩🏻💻 소스코드
# https://programmers.co.kr/learn/courses/30/lessons/92334
# 프로그래머스 LEVEL 1 - 신고 결과 받기
# 2022 KAKAO BLIND RECRUITMENT
def solution(id_list, report, k):
answer = []
report_dic = {user: [] for user in id_list}
report_cnt = {user: 0 for user in id_list}
for s in report:
reporter, user = s.split()
if user not in report_dic[reporter]:
report_dic[reporter].append(user)
report_cnt[user] += 1
for reporter in id_list:
res = 0
for user in report_dic[reporter]:
if report_cnt[user] >= k:
res += 1
answer.append(res)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Programmers | Level 2 - 기능 개발 (python) (0) | 2022.03.08 |
---|---|
Programmers | Level 2 - 오픈 채팅방 (python) (0) | 2022.03.03 |
Programmers | Level 1 - 신규 아이디 추천 (python) (0) | 2022.02.26 |