문제
https://programmers.co.kr/learn/courses/30/lessons/77486
풀이
구현 문제이다.
name, referral, amount를 멤버로 가지는 Seller 클래스와
key:name, value:Seller를 가지는 HashMap을 구현하여 문제를 풀었다.
소스코드
import java.util.*;
class Seller {
String name;
String referral;
int amount;
public Seller (String name, String referral){
this.name = name;
this.referral = referral;
}
}
class Solution {
public int[] solution(String[] enrolls, String[] referrals, String[] sellers, int[] amounts) {
// key: 이름, value: 직원 객체 맵을 만든다.
HashMap<String, Seller> sellerMap = new HashMap<String, Seller>();
for(int i = 0; i < enrolls.length; i++){
sellerMap.put(enrolls[i], new Seller(enrolls[i], referrals[i]));
}
// 직원 별 판매 금액 합계를 낸다.
for(int i = 0; i < sellers.length; i++){
int profit = amounts[i]*100;
Seller seller = sellerMap.get(sellers[i]);
int idx = 0;
while(true){
seller.amount += profit;
seller.amount -= profit/10;
profit = profit/10;
if(profit == 0 || seller.referral.equals("-")) break;
seller = sellerMap.get(seller.referral);
}
}
int[] answer = new int[enrolls.length];
for(int i = 0; i < enrolls.length; i++){
answer[i] = sellerMap.get(enrolls[i]).amount;
}
return answer;
}
}
'💡Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 메뉴 리뉴얼 (Java) (0) | 2021.12.08 |
---|---|
[프로그래머스] 징검다리 (Java) (3) | 2021.12.07 |
[프로그래머스] 거리두기 확인하기 (Java) (0) | 2021.11.30 |
[프로그래머스] 멀쩡한 사각형 (Java) (0) | 2021.11.30 |
[프로그래머스] 베스트앨범 (Java) (0) | 2021.11.30 |