티스토리 뷰
Algorithm/Implementation
(Python) - 프로그래머스(2022 KAKAO BLIND RECRUITMENT) 1번 : 신고 결과 받기
하눤석 2022. 1. 17. 11:56728x90
https://programmers.co.kr/learn/courses/30/lessons/92334
- 해설:
2021년 카카오 블라인드 채용 1차 코딩테스트 1번 문제입니다.
user의 id들과 신고자의 id, 피신고자의 id가 주어졌을 때 k번 이상 신고당한 피신고자를 신고한 사람에게 전송되는 처리결과메일의 횟수를 세는 문제입니다.
- 풀이:
신고를 한 횟수를 카운팅하기 위한 dict 한 개와, 신고를 당한 횟수를 카운팅하기 위한 dict 한 개, 총 두 개를 사용하였습니다.
두 dict를 모두 초기화시켜주고 report의 내역에 따라 피신고 횟수를 카운팅하는 dict를 체크해주었습니다. 여기서 중복신고를 카운팅하지 않기 위해 set 자료구조를 사용하여 중복을 제거해 주었습니다.
마지막에 피신고횟수를 카운팅하는 dict에서 set의 길이가 k 이상인 key를 통해 answer[key]를 1씩 카운트해주었습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def solution(id_list, report, k): answer = dict() check_list = dict() for i in id_list: answer[i] = 0 check_list[i] = set() for s in report: f,t = s.split() check_list[t].add(f) for i in check_list: if len(check_list[i]) >= k: for j in check_list[i]: answer[j] += 1 return [answer[i] for i in answer] | cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - 프로그래머스 (2021 카카오 채용연계형 인턴쉽) : 숫자 문자열과 영단어 (0) | 2022.01.17 |
---|---|
(Python) - 프로그래머스(2019 KAKAO BLIND RECRUITMENT) : 오픈채팅방 (0) | 2022.01.17 |
(Python) - 프로그래머스(2020 KAKAO BLIND RECRUITMENT) : 문자열 압축 (0) | 2022.01.17 |
(Python) - 프로그래머스(2021 KAKAO BLIND RECRUITMENT) : 신규 아이디 추천 (0) | 2022.01.17 |
(Python) - 프로그래머스 : 로또의 최고 순위와 최저 순위 (0) | 2022.01.17 |
댓글
© 2022 WonSeok, All rights reserved