나는 이 문제가 Level 3 문제였지만 kakao Level 3 문제에 비하면 크게 어렵지 않다고 생각했다.
판매원과 추천인을 기록하는 conn dictionary, 총 이익금을 기록하는 total dictionary를 만든다.
Ex 1. conn[판매원] = 추천인
Ex 2. total[판매원] = 총 이익금
판매에 따른 수익 배분 반복문을 만들어 다음 배분자가 없거나(conn[판매원] = "-") 다음 배분자에게 보낼 돈이 0이라면 반복문을 종료한다.
def solution(enroll, referral, seller, amount):
answer = []
conn = {} # 판매원과 추천인
total = {} # 총 이익금
for i in range(len(enroll)):
conn[enroll[i]] = referral[i]
total[enroll[i]] = 0
for j in range(len(seller)):
per = seller[j] # 수익 배분자
price = amount[j] * 100 # 이익금
send = -1 # 다음 배분자에게 보낼 이익금
if conn[per] == "-":
total[per] += price - (price//10)
else:
while True:
if per == "-" or send == 0:
break
if price >= 10:
send = price // 10
else:
send = 0
total[per] += price - send
price = send
per = conn[per]
for x in enroll:
answer.append(total[x])
return answer