문제출처 : https://school.programmers.co.kr/learn/courses/30/lessons/77486
접근법
코드
from collections import defaultdict def solution(enroll, referral, seller, amount): answer = [] ref = {} total = defaultdict(int) for i,name in enumerate(enroll): ref[name] = referral[i] # for i,name in enumerate(seller): next_sum = amount[i]*100 # 총 이익 next_ref = name # while( next_ref and next_sum > 0): # 상위 구성원이 존재하는 경우 if next_sum * 0.1 >= 1: # 1원 이상 total[next_ref] += next_sum - int(next_sum *0.1) next_sum = int(next_sum*0.1) else: total[next_ref] += next_sum next_sum = 0 next_ref = "" if ref[next_ref] == "-" else ref[next_ref] # for name in enroll: answer.append(total[name]) return answer