Coding Test/programmers

[프로그래머스] 다단계 칫솔 판매 - python (레벨 3)

조용장 2022. 4. 1. 21:37

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

 

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

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

programmers.co.kr

풀이

문제를 보았을때 알수있는 힌트

문제 설명이 참 길게 되어있다.

다단계로 전체 사람들의 판매해서 번 돈을 나오게 하는 문제이다.

판사람의 추천인이 있다면 10%의 돈을 줘야한다, 그사람의 위에 또 추천인이 있다면 10%를 줘야한다.

이때 0원이 된다면 그 위에 추천인들한테는 돈을 안줘도 된다.

이것을 생각을 하며 코드를 짜면 충분히 풀수있다.

 

def solution(enroll, referral, seller, amount):    
    answer = [0 for i in range(len(enroll))]
    
    idex={name:idx for idx,name in enumerate(enroll)}
    
    # print(idex['mary'])
    for idx, name in enumerate(seller):   
        count=100*amount[idx] # 칫솔 개수 * 100 
        answer[idex[name]] += count
        while referral[idex[name]]!="-":
            answer[idex[name]]-=count//10
            name=referral[idex[name]]
            answer[idex[name]]+=count//10
            count=count//10
            
            if count==0:
                break
        if referral[idex[name]]=="-":
            answer[idex[name]]-=count//10
    return answer

 

 

https://github.com/dydwkd486/coding_test/blob/main/programmers/다단계%20칫솔%20판매.py 

 

GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리

코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.

github.com