Algorithm

[Algorithm] ๋‹ค๋‹จ๊ณ„ ์นซ์†”ํŒ๋งค

ghkdu2 2023. 3. 7. 10:57

๐Ÿ“‹ ๋ฌธ์ œ

๋ฏผํ˜ธ๋Š” ๋‹ค๋‹จ๊ณ„ ์กฐ์ง์„ ์ด์šฉํ•˜์—ฌ ์นซ์†”์„ ํŒ๋งคํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŒ๋งค์›์ด ์นซ์†”์„ ํŒ๋งคํ•˜๋ฉด ๊ทธ ์ด์ต์ด ํ”ผ๋ผ๋ฏธ๋“œ ์กฐ์ง์„ ํƒ€๊ณ  ์กฐ๊ธˆ์”ฉ ๋ถ„๋ฐฐ๋˜๋Š” ํ˜•ํƒœ์˜ ํŒ๋งค๋ง์ž…๋‹ˆ๋‹ค. ์–ด๋А์ •๋„ ํŒ๋งค๊ฐ€ ์ด๋ฃจ์–ด์ง„ ํ›„, ์กฐ์ง์„ ์šด์˜ํ•˜๋˜ ๋ฏผํ˜ธ๋Š” ์กฐ์ง ๋‚ด ๋ˆ„๊ฐ€ ์–ผ๋งˆ๋งŒํผ์˜ ์ด๋“์„ ๊ฐ€์ ธ๊ฐ”๋Š”์ง€๊ฐ€ ๊ถ๊ธˆํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฏผํ˜ธ๊ฐ€ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค ์กฐ์ง์ด ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค.

๋ฏผํ˜ธ๋Š” 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 ๊ธ€์ž ์ด๋‚ด์˜ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋“ค๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ

["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]

 

โœ๏ธ ํ’€์ด

๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์ฒ˜์Œ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ์„ ๊ธˆ์•ก์„ ๋‹ค ๋”ํ•ด์ค€ ํ›„์— ๊นŠ์ด๊ฐ€ ๊นŠ์€ ์‚ฌ๋žŒ๋ถ€ํ„ฐ ์ž์‹ ์„ ์ถ”์ฒœํ•œ ์‚ฌ๋žŒ์—๊ฒŒ 10%์”ฉ ๋–ผ์–ด์ฃผ๋ฉด ๋˜๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ๋‹ค. profit ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„์— enroll์˜ ์š”์†Œ๋ฅผ key๋กœ, value๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ฃผ๊ณ  seller๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๋”ํ•ด์คฌ๋‹ค. ์ดํ›„ enroll์€ ๋“ค์–ด์˜จ ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋œ๋‹ค๋Š” ์ง€๋ฌธ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— enroll ๋ฐฐ์—ด์„ ๋’ค์ง‘๊ณ  ์ฐจ๋ก€๋Œ€๋กœ ์ˆœํšŒํ•˜๋ฉฐ ์ถ”์ฒœํ•œ(์ƒ์œ„) ํŒ๋งค์ž์—๊ฒŒ ์ด์ต์˜ 10%๋ฅผ ๋–ผ์–ด์คฌ๋‹ค.

 

ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ๋Œ€๋ถ€๋ถ„์„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๋ฌธ๋“ "ํŒ๋งค ๊ฑด๋ณ„๋กœ ๊ณ„์‚ฐ์„ ํ•ด์•ผ๋˜๋Š”๊ฑด๊ฐ€?"๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฑด๋ณ„๋กœ ๊ณ„์‚ฐํ•˜๋ฉด ๊ธˆ์•ก์ด ์ฐจ์ด๊ฐ€ ๋‚˜๊ฒŒ ๋˜๋Š”๋ฐ ์นซ์†”์„ ํ•œ๋ฒˆ์”ฉ ์—ด๋ฒˆ ํŒ๋งคํ–ˆ์„๋•Œ ๊ฐœ๋‹น ํŒ๋งค์ด์ต์€ 100์›์ด ๋˜๋Š”๋ฐ ์ด๋•Œ ์ถ”์ฒœ์ž์—๊ฒŒ 10, 0์› ์ˆœ์œผ๋กœ ์ „๋‹ฌ๋œ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ๋ฒˆ์— ๊ณ„์‚ฐํ•  ๊ฒฝ์šฐ ์ด์ต์ด 1000์›์œผ๋กœ ์ถ”์ฒœ์ž์—๊ฒŒ 100, 10, 0์›์ด ์ „๋‹ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ฑด๋‹น ํŒ๋งค์ด์ต์ด ์•„๋ฌด๋ฆฌ ํฌ๋”๋ผ๋„ 10000์›์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์œ„๋กœ ํƒ€๊ณ  ์˜ฌ๋ผ๊ฐ€๋Š” ํšŸ์ˆ˜๋Š” ํฌ์ง€ ์•Š์•„์„œ while๋ฌธ์œผ๋กœ ํƒ€๊ณ ํƒ€๊ณ  ์˜ฌ๋ผ๊ฐ€๋„ ๊ดœ์ฐฎ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ถ”์ฒœ์ž ๊ด€๊ณ„๋ฅผ ๋งค๋ฒˆ ๋ฐฐ์—ด์—์„œ ์ฐพ๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— graph๋ผ๋Š” ์ž์‹ ์˜ ์ถ”์ฒœ์ž๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์คฌ๊ณ , profit ๊ฐ์ฒด๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ ๋‹ค์Œ์— seller๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ์ถ”์ฒœ์ž์—๊ฒŒ 10%์”ฉ ์ „ํ•ด์ฃผ์—ˆ๋‹ค. ์ „ํ•ด์ค„ ์ด์ต์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ„์† ์ƒ์œ„ ์ถ”์ฒœ์ž๋กœ ํƒ€๊ณ ํƒ€๊ณ  ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ•ด์ฃผ๋Š” ๊ธˆ์•ก์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” break๋ฅผ ํ•ด์คฌ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ enroll ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ด๋ฆ„์— ๋”ฐ๋ผ profit ๊ฐ์ฒด์—์„œ ์ด์ต์„ ์ฐพ์•„ answer์— pushํ•ด์ฃผ๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 

 

โŒจ๏ธ ์ฝ”๋“œ

function solution(enroll, referral, seller, amount) {
  var answer = [];

  const profit = {};
  const graph = {};
  for (let i = 0; i < enroll.length; i++) {
    profit[enroll[i]] = 0;
    graph[enroll[i]] = referral[i];
  }

  for (let i = 0; i < seller.length; i++) {
    let p = 100 * amount[i];
    let name = seller[i];
    while (graph[name]) {
      if (!p) break;
      const sendProfit = Math.floor(p / 10);

      profit[name] += p - sendProfit;
      p = sendProfit;
      name = graph[name];
    }
  }

  for (const name of enroll) answer.push(profit[name]);

  return answer;
}