ALGORITHM/Kakao

[Python] 신고 결과 받기

김쿸후 2022. 3. 16. 18:06

1. 문제

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

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr

 

2. 회고

  • 3단계 풀다가 1단계 푸니깐 너무 행복..ㅎ

리스트에서 index 검색하는 함수

index = 리스트.index(찾고싶은 요소)

리스트에서 중복제거

중복제거리스트 = set(원래리스트) 원래리스트 = list(중복제거리스트)
  • 우리에게 익숙한 리스트함수들을 사용하려면 list로 다시 바꿔주는 것이 불필요한 실수를 줄일 수 있다.

 

3. 코드

def solution(id_list, report, k):
    report_num = [0]*len(id_list) # 신고 당한 횟수
    answer = [0]*len(id_list) # 메일 횟수
    reported_list = [] # 신고당한 인간
    
    # report 중복 제거
    report_set = set(report[:])
    report = list(report_set)
    for i in report:
        reporter, reported = i.split(' ')
        idx = id_list.index(reported)
        report_num[idx] += 1

    # 신고당한 인간 찾기
    for idx, i in enumerate(report_num):
        if i >= k:
            reported_list.append(id_list[idx])

    # 메일 보내기
    for i in report:
        reporter, reported = i.split(' ')
        if reported in reported_list:
            idx = id_list.index(reporter)
            answer[idx] +=1
    
    return answer

'ALGORITHM > Kakao' 카테고리의 다른 글

[Python] 행렬 테두리 회전하기  (0) 2022.03.22
[Python] 파괴되지 않은 건물  (0) 2022.03.16
[Python] 양과 늑대  (0) 2022.03.14
[Python] 양궁대회  (0) 2022.03.08
[Python] k진수에서 소수 개수 구하기  (0) 2022.03.08