728x90
import java.util.*;
class Solution {
// 사람을 인덱스로 매핑
public Map<String,Integer> people = new HashMap<>();
public int[] answer; // 각 인덱스의 최종 결과
public String[] parent;// 인덱스를 추천한 사람을 의미하는 변수
public int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
parent = new String[enroll.length];
answer = new int[enroll.length];
for(int i = 0; i < enroll.length; i++) {
people.put(enroll[i],i); // 매핑 작업
if(referral[i].equals("-")) continue;
parent[i] = referral[i]; // i의 추천자를 referral[i]로 지정
}
// 계산
for(int i = 0; i < seller.length; i++){
sends(seller[i],amount[i] * 100);
}
return answer;
}
// 금액을 계산하고 돈을 위로 넘기는 함수
// seller : 돈을 받는 사람, price : 받을 돈
public void sends(String seller, int price){
// 10을 나눈 가격이 0이 되거나, seller가 없다면 종료
if(price <= 0 || seller == null) return;
int sending = price / 10; // 10% 뗀 돈
price -= sending; // 자신이 받을 돈
answer[people.get(seller)] += price; // 자신에게 돈을 더함
// 자신을 추천한 사람을 주체로하는 sends 호출
sends(parent[people.get(seller)],sending);
}
}
728x90
'programmers' 카테고리의 다른 글
프로그래머스 3단계 : 합승 택시 요금 (Java 자바) (0) | 2023.09.14 |
---|---|
프로그래머스 3단계 : 경주로 건설 (Java 자바) (0) | 2023.09.14 |
프로그래머스 3단계 : 길 찾기 게임 (Java 자바) (0) | 2023.09.13 |
프로그래머스 3단계 : 거스름돈 (Java 자바) (0) | 2023.09.13 |
프로그래머스 3단계 : 순위 (Java 자바) (0) | 2023.09.13 |