[Coding Test] 신고 결과 받기

ehwnghks·2022년 7월 12일
0

Coding TEST 연습

목록 보기
1/5

프로그래머스
2022 KAKAO BLIND RECRUITMENT
신고 결과 받기 문제

1. 문제

2. 생각의 흐름

  1. 유저 마다 객체를 만들어 신고당한 횟수, 신고한사람, 결과메일 수를 저장하려함
  2. 신고한 내용에 따라 유저 객체 값을 채움
  3. 모든 신고내용을 확인한 후 k번 이상 신고당한 유저를 신고한 사람의 결과메일 수를 체크

3. 나의 풀이

def solution(id_list, report, k):
    answer = []
    id_obj={}
    stop_user=[]
    report1=set(report)
    report2=list(report1)
    for l in id_list:
        id_obj[l]={}
        id_obj[l]['reported']=0
        id_obj[l]['report_list']=[]
        id_obj[l]['answer']=0
    for i in report2:
        tmp_rp=i.split(' ')
        id_obj[tmp_rp[0]]['report_list'].append(tmp_rp[1])
        id_obj[tmp_rp[1]]['reported'] += 1
    for x in id_list:
        if id_obj[x]['reported'] >= k:
            stop_user.append(x)
    for y in id_list:
        for z in stop_user:
            if z in id_obj[y]['report_list']:
                id_obj[y]['answer']+=1
        answer.append(id_obj[y]['answer'])
    return answer

4. 느낀점

for문을 되도록이면 더 줄여보자.

profile
반갑습니다.

0개의 댓글