[구현] 다단계 칫솔 판매

기린이·2021년 8월 8일
0

다단계 칫솔 판매

문제링크

def solution(enroll, referral, seller, amount):
    tree = {'-':'-'}
    price = {'-':0}
    
    for c, p in zip(enroll, referral):
        tree[c] = p
        price[c] = 0
    
    for i, val in zip(seller, amount):
        parent = tree[i]
        child = i
        val *= 100
        price[i] += val - int(val*0.1)
        price[parent] += int(val*0.1)
        val = int(val*0.1)
        
        while parent != '-':
            child = parent
            parent = tree[parent]
            price[child] -= int(val*0.1)
            price[parent] += int(val*0.1)
            val = int(val*0.1)
            
    answer = list(price.values())[1:]
    return answer

솔루션참고

위에서 아이디어를 참고한 후 내가 구현했는데

위 솔루션, 내가 한 솔루션 둘다 시간초과가 뜬다;;;

배운것

1. 트리는 별게 아니고 딕셔너리에 자식노드:부모노드 이런식으로 저장하면 그게 트리다.

profile
중요한 것은 속력이 아니라 방향성, 공부하며 메모를 남기는 공간입니다.

0개의 댓글