곰퓨타의 SW 이야기

[프로그래머스 level3 다단계 칫솔 판매] 딕셔너리 활용하기 본문

TIL/프로그래머스

[프로그래머스 level3 다단계 칫솔 판매] 딕셔너리 활용하기

곰퓨타 2021. 6. 23. 22:50

해결해야하는 문제는 다음과 같았다.

https://programmers.co.kr/learn/courses/30/lessons/77486

 

코딩테스트 연습 - 다단계 칫솔 판매

민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후,

programmers.co.kr

 

 

 

 

이러한 아이디어를 바탕으로 작성한 코드는 다음과 같다.

def solution(enroll, referral, seller, amount):
    answer = []
    dicts = {}
    tree_dicts = {}
    for i in range(len(enroll)):
        tree_dicts[enroll[i]] = referral[i]
        dicts[enroll[i]] = 0

    for i in range(len(seller)) :
        cost = amount[i]*100
        node = seller[i]
        while node != '-':
            parent = tree_dicts[node]
            if cost*0.1 < 1:
                dicts[node] += cost
                break
            dicts[node] += (cost-(cost//10))
            cost //= 10
            node = parent


    for name in enroll :
        answer.append(int(dicts[name]))
    return answer

 

Comments