π λ¬Έμ μ€λͺ
λ―ΌνΈλ λ€λ¨κ³ μ‘°μ§μ μ΄μ©νμ¬ μΉ«μμ ν맀νκ³ μμ΅λλ€. ν맀μμ΄ μΉ«μμ ν맀νλ©΄ κ·Έ μ΄μ΅μ΄ νΌλΌλ―Έλ μ‘°μ§μ νκ³ μ‘°κΈμ© λΆλ°°λλ ννμ ν맀λ§μ λλ€. μ΄λμ λ νλ§€κ° μ΄λ£¨μ΄μ§ ν, μ‘°μ§μ μ΄μνλ λ―ΌνΈλ μ‘°μ§ λ΄ λκ° μΌλ§λ§νΌμ μ΄λμ κ°μ Έκ°λμ§κ° κΆκΈν΄μ‘μ΅λλ€. μλ₯Ό λ€μ΄, λ―ΌνΈκ° μ΄μνκ³ μλ λ€λ¨κ³ μΉ«μ ν맀 μ‘°μ§μ΄ μλ κ·Έλ¦Όκ³Ό κ°λ€κ³ ν©μλ€.
λ―ΌνΈλ 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 | referral | seller | amount | result |
["john", "mary", "edward", "sam", "emily", "jaimie", "tod", "young"] | ["-", "-", "mary", "edward", "mary", "mary", "jaimie", "edward"] | ["young", "john", "tod", "emily", "mary"] | [12, 4, 2, 5, 10] | [360, 958, 108, 0, 450, 18, 180, 1080] |
["john", "mary", "edward", "sam", "emily", "jaimie", "tod", "young"] | ["-", "-", "mary", "edward", "mary", "mary", "jaimie", "edward"] | ["sam", "emily", "jaimie", "edward"] | [2, 3, 5, 4] | [0, 110, 378, 180, 270, 450, 0, 0] |
π μ
μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1: λ¬Έμ μ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #2: λ¬Έμ μ μ£Όμ΄μ§ μμμ λμΌν μ‘°μ§ κ΅¬μ±μ μ‘°κΈ λ€λ₯Έ ν맀λ μ§κ³λ₯Ό μ μ©ν κ²μ λλ€. μ΄μ΅μ λΆλ°°νλ κ·μΉμ΄ λμΌνλ―λ‘, κ°λ¨ν κ³μ°μ μνμ¬ νμ λ³΄μΈ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
π λμ μ루μ
function solution(enroll, referral, seller, amount) {
const link = {};
const result = {};
for (let i=0; i<enroll.length; i++){
link[enroll[i]] = referral[i];
result[enroll[i]] = 0;
}
function taxation(person, price){
if (person === '-' || price === 0) {
return;
}
const tax = Math.floor(price * 0.10);
const margin = price - tax;
if (price * 0.10 >= 1) {
result[person] += margin;
taxation(link[person], tax);
} else {
result[person] += price
}
}
seller.forEach((el, idx) => {
taxation(el, amount[idx] * 100)
})
return Object.values(result);
}
π μ κ·Ό λ°©λ²
1. νμ λ Έλμ μ°κ²°λ μμ λ Έλλ₯Ό λ°λ‘ νμΈν μ μλλ‘ κ°μ²΄λ₯Ό λ§λ€μ΄ μ€λ€. κ·Έ κ²°κ³Ό λ€μκ³Ό κ°μ κ°μ²΄κ° λ§λ€μ΄μ§λ€.
{
"john":"-",
"mary":"-",
"edward":"mary",
"sam":"edward",
"emily":"mary",
"jaimie":"mary",
"tod":"jaimie",
"young":"edward"
}
2. κ° λ Έλμ μ΄μ‘μ λ΄μμ€ κ°μ²΄λ λ§λ€μ΄μ€λ€.
3. μ¬κ·λ₯Ό μ€ννμ¬, μΉ«μμ ν맀ν 첫 μΈλ¬ΌλΆν° μμ λ ΈλμΈ "-" μ λλ¬ν λκΉμ§ 10%μ© μ°¨κ°νμ¬ μ΄μ‘μ λνλ€.
4. μ¬κ·λ₯Ό μ€ννλ λμ€ κ°μ΄ 0μ΄ λλ©΄ λ°νμ μλ¬λ₯Ό λ°©μ§νκΈ° μν΄ μ¬κ·λ₯Ό μ€μ§νλ€.
5. seller μ κ° μΈλ¬Όμ λν΄ κ°λ³μ μΌλ‘ μ¬κ·λ₯Ό μ€ννλ€.
μ μλ¬Έμ΄ μ‘°κΈ λΆμΉμ νμ¬ Math.floor λ₯Ό μ°κΈ°κΉμ§ μ‘°κΈ μκ°μ΄ κ±Έλ Έλ€. (Math.round κ° μ λ΅μΈ μ€ μκ³ μμλ€) μ΄ λΆλΆμ΄ μ‘°κΈ λ λͺ ννλ€λ©΄ ν¨μ¬ λΉ λ₯΄κ² νμμ λ¬Έμ μ΄λ€.
'π» DEV > γ΄ problems' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€] νΌλ³΄λμΉ μ (0) | 2021.10.14 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] 2020 KAKAO BLIND RECRUITMENT : λ¬Έμμ΄ μμΆ (0) | 2021.10.09 |
[νλ‘κ·Έλλ¨Έμ€] 2018 KAKAO BLIND RECRUITMENT : νλ μ¦4λΈλ‘ (0) | 2021.10.06 |
[νλ‘κ·Έλλ¨Έμ€] κΉμ΄/λλΉ μ°μ νμ(DFS/BFS) : λ¨μ΄ λ³ν (0) | 2021.09.27 |
[νλ‘κ·Έλλ¨Έμ€] ν : μ΄μ€μ°μ μμν (0) | 2021.07.13 |
λκΈ