[Programmers Lv3] 다단계 칫솔 판매
카테고리: Programmers
태그: Coding Test
다단계 칫솔 판매
내 풀이
모든 사람이 있는 dictionary 변수 생성 이 변수에는 center도 포함
사람들의 관계의 정보를 가지고 있는 tree 변수 생성
반복문을 사용하여 tree에 정보를 추가해준다. 이 때 “-“의 데이터에 대해선 center로 넣어준다.
seller와 amount의 정보를 통해 각자 판 가격의 정보를 알아내고,
이를 bottomUp 함수를 통해 위로 올라가면서 계산을 해준다.
Python 코드
def solution(enroll, referral, seller, amount):
def bottomUp(sell, price):
if sell == "center":
ret[sell] += price
return
upPrice = int(price * 0.1)
ret[sell] += price - upPrice
if upPrice:
bottomUp(tree[sell], upPrice)
ret, tree = {roll: 0 for roll in ["center"] + enroll}, {}
for e, r in zip(enroll, referral):
tree[e] = "center" if r == "-" else r
for sell, amt in zip(seller, amount):
price = amt * 100
bottomUp(sell, price)
return [ret[roll] for roll in enroll]
댓글 남기기