반응형
https://programmers.co.kr/learn/courses/30/lessons/92334
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(id_list, report, k):
id_dict = dict.fromkeys(id_list,0)
answer = []
report_dict={}
for i in report:
n_from = i.split(' ')[0]
n_to = i.split(' ')[1]
if n_to not in report_dict.keys():
report_dict[n_to]=[]
report_dict[n_to].append(n_from)
report_dict[n_to] = list(set(report_dict[n_to]))
for key, value in report_dict.items():
if len(value) >= k:
for i in value:
id_dict[i]+=1
answer = list(id_dict.values())
return answer
|
cs |
id_list를 딕셔너리 형태로 만들어줌(처리 결과를 받을 구조)
report 리스트를 돌면서 누가(n_from) 누구(n_to)를 신고하였는지 확인하여 신고 당한 사람을 key로, 신고 한 사람을 value로 넣어준다.
그리고 중복되면 안되기 때문에 set으로 중복을 제거한다.
report_dict를 순회하며 k번 이상 신고를 당한 유저를 신고한 유저에게 +1 씩 하여 처리 결과의 개수를 늘려준다.
id_dict의 value를 list 화 하여 리턴하면 끝난다.
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스][2022 카카오 블라인드] K진수에서 소수 개수 구하기 (0) | 2022.04.29 |
---|---|
[프로그래머스] 로또의 최고 순위와 최저 순위 - 파이썬 풀이 (0) | 2022.04.29 |
[프로그래머스] 가장 큰 수(level 2) 파이썬 문제 풀이 (2) | 2021.08.27 |
[프로그래머스] 모의고사(level 1) 파이썬 문제 풀이 (0) | 2021.08.23 |
[프로그래머스] 베스트앨범(level 3) Python 문제 풀이 (0) | 2021.07.30 |
댓글