Algorithm/Programmers

[미완] #프로그래머스 - 신고 결과 받기 / 파이썬 / 딕셔너리

say! 2022. 6. 29. 17:06
728x90

 

 

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

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

programmers.co.kr

 

def solution(id_list, report, k):
    result = {}
    dic = {}
    reported = {}
    
    # 이용자id가 신고한id 배열 만들기
    for i in id_list:
        dic[i] = []
        result[i] = 0
        reported[i] = 0
            
    # 이용자id, 신고한 id 분리하기 & 배열에 넣기
    for i in report:
        user, reportedUser = i.split(' ')[0], i.split(' ')[1]
        dic[user].append(reportedUser)
        
    # 신고받은 id 횟수 세기
    for i in list(dic.values()):
        for j in set(i):    # 리스트 중복 제거
            reported[j] += 1
                    
                
    # 신고횟수 2회 이상인 아이디를 신고한 이용자 id 찾기
    for i in id_list:
        for j in dic[i]:
            if reported[j] == 2:
                result[i] += 1
            
    
    answer = []
    answer = list(result.values())
    return answer
​

 

 

-딕셔너리 관련 함수

dic.values() 딕셔너리 값 가져오기

list(dic.values()) 리스트로 딕셔너리 값 가져오기

dic.keys() 딕셔너리 키 가져오기

list(dic.keys()) 리스트로 딕셔너리 키 가져오기

 

-set 함수

중복 제거

 

댓글수0