본문 바로가기
문제 풀이/프로그래머스 (Programmers)

[Python] 프로그래머스 : 다단계 칫솔 판매

by 희조당 2022. 9. 29.
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


💡 문제 풀이

기본적인 구현 문제이다.

 

설명은 엄청나게 되어있지만 결국 트리구조를 고려해서 구현하면 된다.

seller의 길이가 10만이라서 일직선의 트리구조가 되는 최악의 경우를 따지면 시간이 부족할 수도 있다.

근데 문제에서 최대로 벌 수 있는 이윤은 10,000원이고

이윤의 10%를 상납해야 하는 구조라서 최대로 5번의 반복을 넘어가지 않는다.

따라서 그냥 구현해주면 된다.

✔️ 느낀 점

처음에 코드가 지저분했는데 조금 다듬으니까 쉽게 풀 수 있는 문제였다.

💻 코드

def solution(enroll, referral, seller, amount):
    ans = [0] * len(enroll)
    
    dict = {}
    for i, e in enumerate(enroll):
        dict[e] = i
        
    for s, a in zip(seller, amount):
        profit = a * 100
        
        while s != '-' and profit > 0:
            idx = dict[s]
            ans[idx] += profit - profit//10
            profit //= 10
            s = referral[idx]
            
    return ans

댓글