def solution(enroll, referral, seller, amount):
answer = []
node = dict(zip(enroll, referral)) # 각 판매원과 그 판매원의 추천인을 매핑
total_profit = {e: 0 for e in enroll} # 각 판매원의 이익금의 총합 초기화
for s, qty in zip(seller, amount): # 각 판매원의 제품 판매 수량에 대하여
money = qty * 100
curr = s # 현재 노드는 판매원
while curr != '-' and money > 0: # 노드가 루트 노드가 아니고 분배 할 돈이 있는 경우 반복
pass_up = money // 10 # 분배금
keep = money - pass_up # 판매원이 챙길 배분하고 남은 나머지 금액
total_profit[curr] += keep # 이익금 갱신
money = pass_up # 분배받은 추천인이 위로 다시 분배하기 전 금액
curr = node[curr] # 현재 노드를 부모 노드로 갱신
for e in enroll:
answer.append(total_profit[e])
return answer