티스토리 뷰

<중요한 포인트>

- .index() 함수로 인덱스를 찾아가면서 풀었더니 시간초과가 나왔다.

- 딕셔너리로 바로바로 접근해야 시간내에 해결할 수 있다.

- POINT :  dict(zip(enroll, referral))

from math import trunc
# 1.아이디어
# - seller 순서대로 amount연결해 이익 값 구하고, enroll에서의 순서값을 구해, referral순서로 추천인 찾아 10%배분.
# - 이익값 저장할 List 초기화.(순서는 enroll)
# - 종료조건 : referral 이'-' or total 의 10%가 1미만인 경우 total그대로 salary에 저장후 종료

def solution(enroll, referral, seller, amount):
    salary = dict(zip(enroll, [0]*len(enroll)))
    dic = dict(zip(enroll, referral))
    
    for s,m in zip(seller, amount):
        total = m * 100
        
        while True:
            #10%가 1 미만이면 현재 total 나한테 다 저장
            if total * 0.1 < 1:
                salary[s] += total
                break
            #추천인 없으면    
            if dic[s] == '-':
                salary[s] += (total - trunc(total*0.1))
                break
            
            salary[s] += (total - trunc(total*0.1))
            total = trunc(total*0.1)
            s = dic[s]

    return list(salary.values())
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함