2022 카카오 신입 공채
https://programmers.co.kr/learn/courses/30/lessons/92334
머리말
처음 엄청 쉽게 작성하고 10점 미만나와서 띠용? 30분 더 투자해서 솔브
dictionary 관련 자주 접하다보면 외워지겠지...
누적 신고 횟수 담으면서 불량 이용자 찾기 → 이메일 보낼 횟수 담기 순으로 처리하였다.
🐥 이건 얻어가자
- 리스트에서 중복을 중복을 제거하고 싶으면?
list(set(리스트))
- 해시맵을 구성할 때 key값이 정해져있다면?
dict.fromkeys(리스트, 초기값)
코드
def solution(id_list, report, k):
answer = []
report = list(set(report)) # set을 이용해 중복으로 신고한 내역 제거
d_accumulate = dict.fromkeys(id_list, 0) # 누적 신고 횟수를 담는 dictionary
email = set() # 불량 이용자 이름
for r in report:
s = r.split()
d_accumulate[s[1]] += 1
if d_accumulate[s[1]] >= k: # 누적 신고 횟수가 k번 넘으면 불량 이용자로 등록
email.add(s[1])
send = dict.fromkeys(id_list, 0) # 이메일 보낼 횟수를 담는 dictionary
for r in report:
s = r.split()
if s[1] in email:
send[s[0]] += 1
# return 배열 구성
for key, value in send.items():
answer.append(value)
return answer
공식 해설
카카오 공식 해설을 참고하자.
더 읽을거리
'Algorithm' 카테고리의 다른 글
[Python] 프로그래머스 : 메뉴 리뉴얼 (구현) (0) | 2022.07.05 |
---|---|
[Python] 프로그래머스 : 신규 아이디 추천 (구현) (1) | 2022.05.22 |
[Python] 프로그래머스 : 문자열 압축 (구현, 완전탐색) (0) | 2022.05.20 |
[Python] 백준 2357 : 최솟값과 최댓값 (세그먼트 트리) (0) | 2022.05.10 |
[Python] 백준 1162 : 도로포장 (다익스트라, DP) (0) | 2022.05.10 |