날짜: 2022년 3월 11일 오후 11:20
코드
Algorithm/77486.py at main · Junroot/Algorithm
풀이
위상 정렬을 사용했다.
위상 정렬을 사용하기 위해서 멤버 이름으로 id를 찾거나 id로 이름을 찾아야되는 경우가 있어서, dictionary를 2개 사용했다. 위상 정렬로 수수료를 계산할 때 2가지 문제가 있었다.
현재 멤버의 수익의 10%를 그대로 부모 멤버에게 주면 오답이 된다. 자신의 자식 멤버에게서 받은 수수료를 각각 10%씩 구하고 일의자리 아래는 버림해야되기 때문에, 자식으로부터 받은 수수료를 바로 더하지 않고, 리스트로 관리해야됐다.
시간 초과 문제
1번 과정을 구현하고보니 시간 초과가 발생했다. 10%값이 0원일 때는 부모에게 수수료를 줄 필요가 없기 때문에 이 경우는 리스트에 추가하는 작업을 하지 않으니 시간 초과가 해결되었다.