From 32becee35abceed7a00d91722a42558fd93e2eaa Mon Sep 17 00:00:00 2001 From: hanoong7 <108854591+hanoong7@users.noreply.github.com> Date: Mon, 22 Aug 2022 21:38:33 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=A4=EB=8B=A8=EA=B3=84=20=EC=B9=AB?= =?UTF-8?q?=EC=86=94=20=ED=8C=90=EB=A7=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 다단계 칫솔 판매 문제풀이입니다 --- ...\253\354\206\224 \355\214\220\353\247\244" | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 "hanoong7/\353\213\244\353\213\250\352\263\204 \354\271\253\354\206\224 \355\214\220\353\247\244" diff --git "a/hanoong7/\353\213\244\353\213\250\352\263\204 \354\271\253\354\206\224 \355\214\220\353\247\244" "b/hanoong7/\353\213\244\353\213\250\352\263\204 \354\271\253\354\206\224 \355\214\220\353\247\244" new file mode 100644 index 0000000..76c789d --- /dev/null +++ "b/hanoong7/\353\213\244\353\213\250\352\263\204 \354\271\253\354\206\224 \355\214\220\353\247\244" @@ -0,0 +1,74 @@ +//풀이1 +#include +#include +#include + +using namespace std; + +vector solution(vector enroll, vector referral, vector seller, vector amount) { + vector answer(enroll.size()); + string Seller; + string Recommender; + int money = 0; + int give = 0; + int cycle = 0; + int SellerIndex = 0; + int RecommenderIndex = 0; + for (cycle = 0; cycle < seller.size(); cycle++) { + Seller = seller[cycle]; + money = amount[cycle] * 100; + SellerIndex = find(enroll.begin(), enroll.end(), Seller) - enroll.begin(); + Recommender = referral[SellerIndex]; + RecommenderIndex = find(enroll.begin(), enroll.end(), Recommender) - enroll.begin(); + while (Recommender != "-") { + if (money / 10 < 1) break; + give = money / 10; + answer[SellerIndex] += money - give; + money = give; + Seller = Recommender; + SellerIndex = find(enroll.begin(), enroll.end(), Seller) - enroll.begin(); + Recommender = referral[SellerIndex]; + RecommenderIndex = find(enroll.begin(), enroll.end(), Recommender) - enroll.begin(); + } + give = money / 10; + answer[SellerIndex] += money - give; + } + return answer; +} + + +//풀이2 +#include +#include +#include + +using namespace std; + +map parent; +map gain; + +void update_gain(string now, int sell_gain) { + if (now == "-")return; + int delivery = sell_gain * 0.1; + gain[now] += sell_gain - delivery; + if (delivery == 0)return; + update_gain(parent[now], delivery); +} + +vector solution(vector enroll, vector referral, vector seller, vector amount) { + vector answer; + + for (int i = 0; i < enroll.size(); i++) { + parent[enroll[i]] = referral[i]; + } + + for (int i = 0; i < seller.size(); i++) { + update_gain(seller[i], amount[i] * 100); + } + + for (int i = 0; i < enroll.size(); i++) { + answer.push_back(gain[enroll[i]]); + } + + return answer; +}