get(i,money) : 수익의 90%를 i가 먹고 10%를 referral[i] 에게 배분.
referral[i]에게 배분할때도 90%/10% 규칙이 적용되니까 재귀호출 사용.
def solution(enroll, referral, seller, amount):
n = len(enroll)
name_id = dict()
name_id["-"] = -1
profit = [0 for i in range(n)]
for (id, name) in enumerate(enroll):
name_id[name] = id
referral = list(map(lambda name: name_id[name], referral))
seller = list(map(lambda name: name_id[name], seller))
amount = list(map(lambda x: x*100, amount))
def get(i, money):
if i == -1:
return
referral_money = money//10
my_money = money-referral_money
profit[i] += my_money
if referral_money > 0:
get(referral[i], referral_money)
for (i, money) in zip(seller, amount):
get(i, money)
return profit