본문 바로가기
Algorithm/programmers

programmers 신고 결과 받기

by 갈잃자 2022. 7. 26.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


import copy
def solution(id_list, report, k):
    arr = []
    ban = [0]*len(id_list)
    mail = [0]*len(id_list)
    report=list(set(report)) #set을 시켜서 중복신고를 대폭 줄여줌
    a = copy.deepcopy(id_list)
    for i in range(len(report)):
        arr.append(report[i].split())

    for i in range(len(arr)):
        ban[id_list.index(arr[i][1])]+=1

    # for문을 1중for문으로 맞추기 위함
    for i in range(len(ban)):
        if ban[i] >=k:
            a[i] = ban[i] #신고를 k번이상 받은사람은 사람도 아니다! 숫자다!

    for i in range(len(arr)):
        if arr[i][1] not in a: # 신고한 사람이 사람이 아니라 숫자면
            mail[id_list.index(arr[i][0])] += 1 # 신고했던 사람들한테 메일 하나씩

    return mail

dict를 쓴다던가 하는 많은 방법이 있을거 같은데..

 

일단 처음 손 댄 방식에서 아예 새로운 방식으로 바꾸고 싶지 않았다.ㅠㅠ

 

최대한 이해에 도움이 되게 끔 작성하였다. ^^

댓글