스터디/알고리즘
다단계 칫솔 판매
세졍
2024. 5. 30. 16:45
문제이해
enroll에 적힌사원들과 각위치의 사원들을 데리고온사람 , 즉 수익의 10%를 주어야하는사람이
referral에 있고 seller에 판사람의 개수를 amount에서 보여줄때
enroll의 위치한 사람순서대로 수익 출력
def solution(enroll, referral, seller, amount):
dic = {} # 부모자식계 키가 자식이고 값이 부모인
result = []
for i in range(len(enroll)):
dic[enroll[i]] = referral[i]
money = {}
for i in enroll:
money[i] = 0
for i in range(len(seller)):
# 수익분배
cash = amount[i] * 100
current_name = seller[i]
while current_name != '-' and cash>0 :
parent_share = cash // 10
money[current_name] += cash - parent_share
cash = parent_share
current_name = dic[current_name]
for i in enroll:
result.append(money[i])
return result
enroll = ["john", "mary", "edward", "sam", "emily", "jaimie", "tod", "young"]
referral = ["-", "-", "mary", "edward", "mary", "mary", "jaimie", "edward"]
seller = ["young", "john", "tod", "emily", "mary"]
amount = [12, 4, 2, 5, 10]
print(solution(enroll, referral, seller, amount))
# enroll에 등록된순서대로 얼마 번지 출력하기
# 자식노드가 enroll , 부모노드가 referral이 된다
# 딕셔너리로 자식과 부모를 연결하는 것을 만드록 최종적으로 - 를 만나면 부모가 없으므로 멈춤
comment
1. cash> 0 이게 없으면 마지막 테스트케이스 3개 시간초과 뜸