Programmers 신고 결과 받기 Level 1 - python

유형석·2022년 7월 9일
0

python/Algorithm

목록 보기
2/9
post-thumbnail

Pogrammers Level 1

python 초보

문제 : Programmers 신고 결과 받기 Link

입출력 예시

from collections import defaultdict

def solution(id_list, report, k):
	result = {x: 0 for x in id_list}  # 결과 result 와 같이 출력하기 위한 dict()
    user_dict = defaultdict(list)
    report = list(set(report))  # 신고 대상에 한 사람의 신고자만 유효함, 중복 제거를 위해 set()
    report_list = [x.split() for x in report]  # ex) [["ryan","con"]]]
    # 위 두 줄 대신 #
    # report_list = [x.split() for x in list(set(report))]
    
    for reporter, be_re in report_list:
    	user_dict[be_re] += reporter.split()
        # 신고 대상이 key 값으로 와 신고자를 values로 세기 위함
        # defaultdict() 자료형을 이용, list로 초기화 하여 초기값이 없어도 += 연산 가능
    
    for cnt in user_dict.values():
    	if len(cnt) >= k:
        	for i in cnt:
            	result[i] += 1
    
    return list(result.values())
  • 포인트
  1. defaultdict() 사용하면 깔끔함
  2. split() 함수 -> 반환값은 list
  3. set()
profile
Carrot_hyeong

0개의 댓글