코딩테스트/programmers (python)
Programmers / 1단계 / 신고 결과 받기 / python / 2022 KAKAO BLIND RECRUITMENT
seulll
2024. 3. 13. 17:58
코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
def solution(id_list, report, k):
id_dict={x: 0 for x in id_list}
rep_id={x: 0 for x in id_list}
arr=[]
id = []
for i in set(report):
id_dict[i.split()[1]] +=1
for i in id_dict.keys():
if id_dict[i] >= k:
id.append(i)
for i in set(report):
if i.split()[1] in id:
rep_id[i.split()[0]]+=1
return [_ for _ in rep_id.values()]
모범 답안
def solution(id_list, report, k):
answer = [0] * len(id_list)
reports = {x : 0 for x in id_list}
for r in set(report):
reports[r.split()[1]] += 1
for r in set(report):
if reports[r.split()[1]] >= k:
answer[id_list.index(r.split()[0])] += 1
return answer
메일을 받은 횟수를 딕셔너리가 아닌 0으로 초기화 된 answer 배열로 저장하여 신고 당한 횟수가 k 이상인 경우에 인덱스로 바로 접근할 수 있다.