신고 결과 받기

메캉·2022년 7월 16일
0

알고리즘 👑

목록 보기
1/11

URL

https://school.programmers.co.kr/learn/courses/30/lessons/92334

개선할 점

  1. 초기 setting을 할때, for문으로 할 필요가 없다
  2. 불필요한 변수를 생성하지 않는다
  3. set의 활용을 생각하자

내 코드

def solution(id_list, report, k):
    answer = []
    r_dic={}
    rd_dic={}
    
    for r in set(report):
        print(r)
    
    # 인원에 따라 변수 setting
    for i in id_list:
        r_dic[i] = set([])
        rd_dic[i] = 0
        answer.append(0)
    
    # 유저별 신고 유저 dic
    for r in report:
        rr = r.split()
        val = r_dic.get(rr[0])
        val.add(rr[1])
        r_dic[rr[0]] = val
    
    # 유저별 신고당한 횟수 dic
    for v in r_dic.values():
        for vv in v:
            rd_dic[vv] += 1
    
    # k번 이상 신고당한 친구인지 확인
    for i, v in enumerate(r_dic.values()):
        for vv in v:
            if rd_dic[vv] >= k:
                answer[i] += 1
    return answer

가이드 코드

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개의 댓글