문제는 부디 링크로 가셔서 보시길..
python
def solution(enroll, referral, seller, amount): answer = [] _enroll = {} result = {} result["-"] = 0 # enroll과 referral은 길이가 같다. for e, r in zip(enroll, referral): # _enroll은 key를 데려온 추천인을 value에 저장한다. _enroll[e] = r # result는 해당하는 사람이 얼마를 벌었는지를 본다. result[e] = 0 # seller와 amount는 길이가 같다. for s, a in zip(seller, amount): a_mount = a * 100 sell_er = s result[sell_er] += a_mount while True: a_mount = a_mount // 10 # 10%가 1원보다 안되면 더하지 않고 while문을 끝낸다. if a_mount < 1: break else: # 추천인에게 본인의 10%를 준다. result[sell_er] -= a_mount result[_enroll[sell_er]] += a_mount sell_er = _enroll[sell_er] if sell_er == "-": break for r in result: answer.append(result[r]) answer = answer[1:] return answer
javascript
function solution(enroll, referral, seller, amount) { var answer = []; var recommend = {}; var result = {}; var a = 0; var s = ''; result['-'] = 0; for (var key in enroll){ recommend[enroll[key]] = referral[key]; result[enroll[key]] = 0; } for (var _ in seller) { a = amount[_] * 100; s = seller[_] result[s] += a while (true) { a = parseInt(a / 10); if (a < 1) { break; } else { result[s] -= a; result[recommend[s]] += a; s = recommend[s]; } if (s == '-') break; } } for (var i = 0; i < enroll.length; i++) { answer.push(result[enroll[i]]); } return answer; }