코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 스쿨 (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 이상인 경우에 인덱스로 바로 접근할 수 있다.
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 3단계 / 단어 변환 / python / DFS/BFS (0) | 2024.03.16 |
---|---|
Programmers / 3단계 / 정수 삼각형 / python / 동적계획법(Dynamic Programming) (1) | 2024.03.16 |
Programmers / 2단계 / 배달 / python / Summer/Winter Coding(~2018) (0) | 2024.03.13 |
Programmers / 2단계 / [3차] 파일명 정렬 / python / 2018 KAKAO BLIND RECRUITMENT (1) | 2024.03.12 |
Programmers / 2단계 / 스킬트리 / python / Summer/Winter Coding(~2018) (0) | 2024.03.11 |