본문 바로가기

Programmers/Level3

다단계 칫솔 판매

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import java.util.*;
class Solution {
    static HashMap<String, Integer> map = new HashMap<String, Integer>();
    static ArrayList<Persons> list = new ArrayList<Persons>();
    
    static void moneyCal(String seller, int money) {
        Persons person = list.get(map.get(seller));
        int remain = (int) (money * 0.1);
        person.profit += money - remain;
        
        // 추천인이 없거나 배분 금액이 없을 경우 종료
        if(person.recommender.equals("-"|| remain == 0
            return;
        moneyCal(person.recommender, remain);
    }
    
    public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
        int n = enroll.length;
        int[] answer = new int[n];
 
        for(int i=0;i<n;i++) {
            list.add(new Persons(enroll[i], referral[i]));
            map.put(enroll[i], i);
        }
        
        // 수익 계산
        for(int i=0;i<seller.length;i++) {
            moneyCal(seller[i], amount[i] * 100);
        }
        
        for(int i=0;i<n;i++) {
            answer[i] = list.get(i).profit;
        }
        return answer;
    }
}
 
class Persons {
    String name;
    String recommender;
    int profit;
    public Persons(String enroll, String referral) {
        this.name = enroll;
        this.recommender = referral;
        this.profit = 0;
    }
}
cs

'Programmers > Level3' 카테고리의 다른 글

오랜 기간 보호한 동물(1)  (0) 2022.05.01
없어진 기록 찾기  (0) 2021.12.24
네트워크  (0) 2021.12.23
헤비 유저가 소유한 장소  (0) 2021.12.23
있었는데요 없었습니다  (0) 2021.12.23