프로그래머스
다단계 칫솔 C++
paysmile
2021. 10. 3. 10:48
https://programmers.co.kr/learn/courses/30/lessons/77486?language=cpp
코딩테스트 연습 - 다단계 칫솔 판매
민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후,
programmers.co.kr
#include <string>
#include <vector>
#include <map>
using namespace std;
map<string,string> parent;
map<string,int> profit;
void MakeProfit(string name,int money){
if(name == "-") return;
int give = money * 0.1;
profit[name] = profit[name] + (money-give);
if(give <1) return;
MakeProfit(parent[name],give);
}
vector<int> solution(vector<string> enroll, vector<string> referral, vector<string> seller, vector<int> amount) {
vector<int> answer;
for(int i=0; i<enroll.size(); i++){
parent[enroll[i]] = referral[i];
}
for(int i=0; i<seller.size(); i++){
MakeProfit(seller[i],amount[i]*100);
}
for(int i=0; i<enroll.size(); i++){
answer.push_back(profit[enroll[i]]);
}
return answer;
}