λ¬Έμ
λ―ΌνΈλ λ€λ¨κ³ μ‘°μ§μ μ΄μ©νμ¬ μΉ«μμ ν맀νκ³ μμ΅λλ€. ν맀μμ΄ μΉ«μμ ν맀νλ©΄ κ·Έ μ΄μ΅μ΄ νΌλΌλ―Έλ μ‘°μ§μ νκ³ μ‘°κΈμ© λΆλ°°λλ ννμ ν맀λ§μ λλ€. μ΄λμ λ νλ§€κ° μ΄λ£¨μ΄μ§ ν, μ‘°μ§μ μ΄μνλ λ―ΌνΈλ μ‘°μ§ λ΄ λκ° μΌλ§λ§νΌμ μ΄λμ κ°μ Έκ°λμ§κ° κΆκΈν΄μ‘μ΅λλ€. μλ₯Ό λ€μ΄, λ―ΌνΈκ° μ΄μνκ³ μλ λ€λ¨κ³ μΉ«μ ν맀 μ‘°μ§μ΄ μλ κ·Έλ¦Όκ³Ό κ°λ€κ³ ν©μλ€.
λ―ΌνΈλ centerμ΄λ©°, νλμ λ€λͺ¨λ μ¬λ λͺ μ ν맀μμ νμν κ²μ λλ€. κ°κ°μ μμ μ μ‘°μ§μ μ°Έμ¬μν¨ μΆμ²μΈμ μ°κ²°λμ΄ νΌλΌλ―Έλ μμ ꡬ쑰λ₯Ό μ΄λ£¨κ³ μμ΅λλ€. μ‘°μ§μ μ΄μ΅ λΆλ°° κ·μΉμ κ°λ¨ν©λλ€. λͺ¨λ ν맀μμ μΉ«μμ ν맀μ μνμ¬ λ°μνλ μ΄μ΅μμ 10% λ₯Ό κ³μ°νμ¬ μμ μ μ‘°μ§μ μ°Έμ¬μν¨ μΆμ²μΈμκ² λ°°λΆνκ³ λλ¨Έμ§λ μμ μ΄ κ°μ§λλ€. λͺ¨λ ν맀μμ μμ μ΄ μΉ«μ ν맀μμ λ°μν μ΄μ΅ λΏλ§ μλλΌ, μμ μ΄ μ‘°μ§μ μΆμ²νμ¬ κ°μ μν¨ ν맀μμκ²μ λ°μνλ μ΄μ΅μ 10% κΉμ§ μμ μ μ΄μ΅μ΄ λ©λλ€. μμ μκ² λ°μνλ μ΄μ΅ λν λ§μ°¬κ°μ§μ κ·μΉμΌλ‘ μμ μ μΆμ²μΈμκ² λΆλ°°λ©λλ€. λ¨, 10% λ₯Ό κ³μ°ν λμλ μ λ¨μμμ μ μ¬νλ©°, 10%λ₯Ό κ³μ°ν κΈμ‘μ΄ 1 μ λ―Έλ§μΈ κ²½μ°μλ μ΄λμ λΆλ°°νμ§ μκ³ μμ μ΄ λͺ¨λ κ°μ§λλ€.
μλ₯Ό λ€μ΄, μλμ κ°μ ν맀 κΈ°λ‘μ΄ μλ€κ³ κ°μ νκ² μ΅λλ€. μΉ«μμ ν맀μμ λ°μνλ μ΄μ΅μ κ°λΉ 100 μμΌλ‘ μ ν΄μ Έ μμ΅λλ€.
ν맀μν맀 μλμ΄μ΅κΈ
young | 12 | 1,200 μ |
john | 4 | 400 μ |
tod | 2 | 200 μ |
emily | 5 | 500 μ |
mary | 10 | 1,000 μ |
ν맀μ young μ μνμ¬ 1,200 μμ μ΄μ΅μ΄ λ°μνμ΅λλ€. young μ μ΄ μ€ 10% μ ν΄λΉνλ 120 μμ, μμ μ μ‘°μ§μ μ°Έμ¬μν¨ μΆμ²μΈμΈ edward μκ² λ°°λΆνκ³ μμ μ λλ¨Έμ§μΈ 1,080 μμ κ°μ§λλ€. edward λ young μκ²μ λ°μ 120 μ μ€ 10% μΈ 12 μμ mary μκ² λ°°λΆνκ³ μμ μ λλ¨Έμ§μΈ 108 μμ κ°μ§λλ€. 12 μμ edward λ‘λΆν° λ°μ mary λ 10% μΈ 1 μμ μΌν°μ (μ¦, λ―ΌνΈμκ²) λ°°λΆνκ³ μμ μ λλ¨Έμ§μΈ 11 μμ κ°μ§λλ€. μ΄ μνλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
κ·Έ ν, ν맀μ john μ μνμ¬ 400 μμ μ΄μ΅μ΄ λ°μν©λλ€. john μ 10% μΈ 40 μμ μΌν°μ λ°°λΆνκ³ μμ μ΄ λλ¨Έμ§μΈ 360 μμ κ°μ§λλ€. μ΄ μνλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
λ κ·Έ νμλ ν맀μ tod μ μνμ¬ 200 μ μ΄μ΅μ΄ λ°μνλλ°, tod μμ μ΄ 180 μμ, μΆμ²μΈμΈ jaimie κ° κ·Έ μ€ 10% μΈ 20 μμ λ°μμ 18 μμ κ°μ§κ³ , jaimie μ μΆμ²μΈμΈ mary λ 2 μμ λ°μ§λ§ μ΄κ²μ 10% λ μ λ¨μμμ μ μ¬νλ©΄ λ°°λΆν κΈμ‘μ΄ μκΈ° λλ¬Έμ mary λ 2 μμ λͺ¨λ κ°μ§λλ€. μ΄ μνλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
κ·Έ λ€μμΌλ‘ emily κ° μΉ«μ ν맀λ₯Ό ν΅νμ¬ μ»μ μ΄μ΅ 500 μμ λ§μ°¬κ°μ§μ κ·μΉμ λ°λΌ emily μκ² 450 μ, mary μκ² 45 μ, κ·Έλ¦¬κ³ μΌν°μ 5 μμΌλ‘ λΆλ°°λ©λλ€. μ΄ μνλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
λ§μ§λ§μΌλ‘, ν맀μ mary λ 1,000 μμ μ΄μ΅μ λ¬μ±νκ³ , μ΄ μ€ 10% μΈ 100 μμ μΌν°μ λ°°λΆν ν κ·Έ λλ¨Έμ§μΈ 900 μμ μμ μ΄ κ°μ§λλ€. μ΄ μνλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
μμ κ°μ΄ νμ¬ λͺ¨λ μ‘°μ§ κ΅¬μ±μλ€μ μ΄μ΅ λ¬μ± νν© μ§κ³κ° λλ¬μ΅λλ€. μ§κΈκΉμ§ μ»μ μ΄μ΅μ λͺ¨λ ν©ν κ²°κ³Όλ₯Ό κ·Έλ¦ΌμΌλ‘ λνλ΄λ©΄ μλμ κ°μ΅λλ€.
μ΄ κ²°κ³Όκ° λ―ΌνΈκ° νμ νκ³ μ νλ μ΄μ΅ λ°°λΆ νν©μ λλ€.
κ° ν맀μμ μ΄λ¦μ λ΄μ λ°°μ΄ enroll, κ° ν맀μμ λ€λ¨κ³ μ‘°μ§μ μ°Έμ¬μν¨ λ€λ₯Έ ν맀μμ μ΄λ¦μ λ΄μ λ°°μ΄ referral, ν맀λ μ§κ³ λ°μ΄ν°μ ν맀μ μ΄λ¦μ λμ΄ν λ°°μ΄ seller, ν맀λ μ§κ³ λ°μ΄ν°μ ν맀 μλμ λμ΄ν λ°°μ΄ amountκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, κ° ν맀μμ΄ λν μ΄μ΅κΈμ λμ΄ν λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ. ν맀μμκ² λ°°λΆλ μ΄μ΅κΈμ μ΄ν©μ κ³μ°νμ¬(μ μνμΌλ‘), μ λ ₯μΌλ‘ μ£Όμ΄μ§ enrollμ μ΄λ¦μ΄ ν¬ν¨λ μμμ λ°λΌ λμ΄νλ©΄ λ©λλ€.
μ ν μ¬ν
- enrollμ κΈΈμ΄λ 1 μ΄μ 10,000 μ΄νμ
λλ€.
- enrollμ λ―ΌνΈμ μ΄λ¦μ μμ΅λλ€. λ°λΌμ enrollμ κΈΈμ΄λ λ―ΌνΈλ₯Ό μ μΈν μ‘°μ§ κ΅¬μ±μμ μ΄ μμ λλ€.
- referralμ κΈΈμ΄λ enrollμ κΈΈμ΄μ κ°μ΅λλ€.
- referral λ΄μμ i λ²μ§Έμ μλ μ΄λ¦μ λ°°μ΄ enroll λ΄μμ i λ²μ§Έμ μλ ν맀μμ μ‘°μ§μ μ°Έμ¬μν¨ μ¬λμ μ΄λ¦μ λλ€.
- μ΄λ λꡬμ μΆμ²λ μμ΄ μ‘°μ§μ μ°Έμ¬ν μ¬λμ λν΄μλ referral λ°°μ΄ λ΄μ μΆμ²μΈμ μ΄λ¦μ΄ κΈ°μ λμ§ μκ³ “-“ κ° κΈ°μ λ©λλ€. μ μμ μμλ john κ³Ό mary κ° μ΄λ¬ν μμ ν΄λΉν©λλ€.
- enroll μ λ±μ₯νλ μ΄λ¦μ μ‘°μ§μ μ°Έμ¬ν μμμ λ°λ¦ λλ€.
- μ¦, μ΄λ ν맀μμ μ΄λ¦μ΄ enroll μ i λ²μ§Έμ λ±μ₯νλ€λ©΄, μ΄ ν맀μμ μ‘°μ§μ μ°Έμ¬μν¨ μ¬λμ μ΄λ¦, μ¦ referral μ i λ²μ§Έ μμλ μ΄λ―Έ λ°°μ΄ enroll μ j λ²μ§Έ (j < i) μ λ±μ₯νμμ΄ λ³΄μ₯λ©λλ€.
- sellerμ κΈΈμ΄λ 1 μ΄μ 100,000 μ΄νμ
λλ€.
- seller λ΄μ i λ²μ§Έμ μλ μ΄λ¦μ i λ²μ§Έ ν맀 μ§κ³ λ°μ΄ν°κ° μ΄λ ν맀μμ μν κ²μΈμ§λ₯Ό λνλ λλ€.
- seller μλ κ°μ μ΄λ¦μ΄ μ€λ³΅ν΄μ λ€μ΄μμ μ μμ΅λλ€.
- amountμ κΈΈμ΄λ sellerμ κΈΈμ΄μ κ°μ΅λλ€.
- amount λ΄μ i λ²μ§Έμ μλ μλ i λ²μ§Έ ν맀 μ§κ³ λ°μ΄ν°μ ν맀λμ λνλ λλ€.
- ν맀λμ λ²μ, μ¦ amount μ μμλ€μ λ²μλ 1 μ΄μ 100 μ΄νμΈ μμ°μμ λλ€.
- μΉ«μ ν κ°λ₯Ό ν맀νμ¬ μ»μ΄μ§λ μ΄μ΅μ 100 μμΌλ‘ μ ν΄μ Έ μμ΅λλ€.
- λͺ¨λ μ‘°μ§ κ΅¬μ±μλ€μ μ΄λ¦μ 10 κΈμ μ΄λ΄μ μλ¬Έ μνλ²³ μλ¬Έμλ€λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
νμ΄
λ κ°μ ν΄μ맡μ μ΄μ©ν΄μ νμλ€.
μ²μ, μμ-λΆλͺ¨ 맡μ μ¬μ©νμ§ μκ³ , λ³ΈμΈμ enroll λ°°μ΄μμμ μΈλ±μ€λ§ κ°μ§ ν΄μ맡μ μ΄μ© π μκ°μ΄κ³Όλ λμ§μμμΌλ, λλ¦Ό
μμ - λΆλͺ¨ 맡과 μΈλ±μ€ 맡 λ κ°μ§λ₯Ό κ°μ΄ μ¬μ© π λΉ λ¦
μ΄λ ΅μ§λ μμλλ°, μ²μμ λ¬Έμ λ₯Ό μλͺ» μ΄ν΄ν΄μ μμμΌλ‘ λΆν° λ°μ μ΄μ΅μ λΆλͺ¨μκ² μ£Όμ§ μλλ€κ³ μκ°ν΄μ
λ€μ μ°Ύλλ° μκ°μ΄ μ’ κ±Έλ Έμ π€¦βοΈ
μ½λ
- HashMapμ μΈλ±μ€ μ μ₯μΌλ‘λ§ μ¬μ©ν μ½λ π λλ¦ΌβΌοΈ
public static int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
int[] answer = new int[enroll.length];
int price = 100;
Map<String, Integer> indexMap = new HashMap<>(); // λ³ΈμΈ μμ μ index -> enroll μμΌλ‘ answer λ°μμΌν¨
for(int i = 0 ; i <enroll.length ;i++){
indexMap.put(enroll[i], i);
}
for(int i = 0 ; i < seller.length ;i++){
String curSeller = seller[i];
int profit = price * amount[i];
while(!curSeller.equals("-")){
int profitForParent = profit / 10;
int profitForMe = profit - profitForParent;
answer[indexMap.get(curSeller)] += profitForMe;
curSeller = referral[indexMap.get(curSeller)];
profit /= 10;
if(profitForParent < 1)
break;
}
}
return answer;
}
- referral λ°°μ΄λ‘ λΆλͺ¨λ₯Ό μ°Ύμ§μκ³ HashMapμ μ μ₯
public static int[] solution(String[] enroll, String[] referral, String[] seller, int[] amount) {
int[] answer = new int[enroll.length];
int price = 100;
Map<String, String> parentMap = new HashMap<>(); // λ³ΈμΈ - λΆλͺ¨
Map<String, Integer> indexMap = new HashMap<>(); // λ³ΈμΈ μμ μ index -> enroll μμΌλ‘ answer λ°μμΌν¨
for(int i = 0 ; i <enroll.length ;i++){
parentMap.put(enroll[i], referral[i]);
indexMap.put(enroll[i], i);
}
for(int i = 0 ; i < seller.length ;i++){
String curSeller = seller[i];
int profit = price * amount[i];
while(!curSeller.equals("-")){
int profitForParent = profit / 10;
int profitForMe = profit - profitForParent;
answer[indexMap.get(curSeller)] += profitForMe;
curSeller = parentMap.get(curSeller);
profit /= 10;
if(profitForParent < 1)
break;
}
}
return answer;
}
'μκ³ λ¦¬μ¦ > νλ‘κ·Έλλ¨Έμ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ νλ‘κ·Έλλ¨Έμ€ / Programmers Level 3 ] ν νΈμ§ (0) | 2021.09.23 |
---|---|
[ νλ‘κ·Έλλ¨Έμ€ / Programmers Level 3 ] μ ν λ²μ€ (0) | 2021.09.21 |
[ νλ‘κ·Έλλ¨Έμ€ / Programmers Level 3 ] μμ (0) | 2021.09.16 |
[ νλ‘κ·Έλλ¨Έμ€ / Programmers Level 3 ] λ€νΈμν¬ (0) | 2021.09.15 |
[ νλ‘κ·Έλλ¨Έμ€ / Programmers Level 3] μ μ μΌκ°ν (0) | 2021.09.15 |