문제 풀이/프로그래머스 (Programmers)
[Python] 프로그래머스 : 다단계 칫솔 판매
희조당
2022. 9. 29. 06:44
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