알고리즘/프로그래머스
[프로그래머스] 다단계 칫솔 판매 (파이썬)
엉아_
2021. 12. 17. 21:40
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/77486
코딩테스트 연습 - 다단계 칫솔 판매
민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후,
programmers.co.kr
💡 풀이법
1. 돈을 담을 리스트 money를 만든다.
2. 이름을 key, 인덱스를 value로 하는 딕셔너리 dict를 만든다.
3. seller와 amount를 돌면서 이름의 인덱스를 구하고 money에서 그 인덱스에 해당하는 위치(추천인)에 돈을 더한다.
계속해서 돈을 1/10씩 줄이면서 만약 돈이 0과 같아지거나 그 다음 추천인이 '-' 이면 while문을 멈춘다.
def solution(enroll, referral, seller, amount):
money = [0 for _ in range(len(enroll))]
dict = {}
for i, e in enumerate(enroll):
dict[e] = i
for s, a in zip(seller, amount):
m = a * 100
while s != "-" and m > 0:
idx = dict[s]
money[idx] += m - m//10
m //= 10
s = referral[idx]
return money