신고 결과 받기

발자·2022년 9월 2일
0

programmers

목록 보기
2/34

python

def solution(id_list, report, k):
    reportNumber = [0] * len(id_list)
    reportId = []
    answer = [0] * len(id_list)
    
    for i in range(0, len(id_list)) :
        reportId.append(set())

    for i in set(report) :
        first = (i.split())[0]
        last = (i.split())[-1]
        indexFirst = id_list.index(first)
        indexLast = id_list.index(last)
        reportId[indexFirst].add(last)
        reportNumber[indexLast] += 1

    for i in range(0, len(id_list)) :
        for j in reportId[i] :
            if(reportNumber[id_list.index(j)]>=k) :
                answer[i] += 1

    return answer

listset보다 값을 찾는 데 오래 걸린다.
[[]]*n, [{}]*n, [set()]*n는 얕은 복사이기 때문에 모두 같은 값을 갖는다.
다른 사람의 풀이를 보고 dictionary와 주어진 입력값을 적극 활용하면 코드 길이를 줄일 수 있음을 알게 되었다.

0개의 댓글