최종적으로 모든 판매원들이 갖게 되는 각각의 이익들.
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
vector<int> solution(vector<string> enroll, vector<string> referral, vector<string> seller, vector<int> amount) {
int cntEnroll = (int)enroll.size();
int cntSeller = (int)seller.size();
vector<int> answer;
unordered_map<string, string> referralMap;
unordered_map<string, vector<int>> moneyMap;
moneyMap["-"] = vector<int>(2, 0);
for (int i = 0; i < cntEnroll; i++)
{
string enr = enroll[i];
string ref = referral[i];
referralMap[enr] = ref;
moneyMap[enr] = vector<int>(2, 0);
}
for (int i = 0; i < cntSeller; i++)
{
string sell = seller[i];
int money = amount[i] * 100;
moneyMap[sell][0] = money;
while (sell != "-")
{
vector<int>& moneyVec = moneyMap[sell];
int tenPercent = moneyVec[0] / 10;
moneyVec[1] += moneyVec[0] - tenPercent;
moneyVec[0] = 0;
if (tenPercent == 0)
break;
sell = referralMap[sell];
moneyMap[sell][0] = tenPercent;
}
}
for (int i = 0; i < cntEnroll; i++)
{
answer.push_back(moneyMap[enroll[i]][1]);
}
return answer;
}