[Programmers Lv3] 다단계 칫솔 판매

Date:     Updated:

카테고리:

태그:

다단계 칫솔 판매

다단계 칫솔 판매


내 풀이

모든 사람이 있는 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]


Programmers 카테고리 내 다른 글 보러가기

첫 번째 글입니다 가장 최근 글입니다

댓글 남기기