ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿš€ The Algorithm Mastery Series ( part 4 )
Dev.toDev.to
Backend

๐Ÿš€ The Algorithm Mastery Series ( part 4 )

Algorithm Mastery Series Part 4์—์„œ ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ LinkedIn ์นœ๊ตฌ ์ถ”์ฒœ ์‹œ์Šคํ…œ์˜ BFS ๊ธฐ๋ฐ˜ ๊ตฌํ˜„๊นŒ์ง€ ์‹ค๋ฌด ์‚ฌ๋ก€๋กœ ์„ค๋ช…

Charles Kumar2026๋…„ 3์›” 26์ผ12๋ถ„intermediate

Context

๊ทธ๋ž˜ํ”„๋Š” ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•ญ๋ชฉ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ์กฐ๋กœ, ์†Œ์…œ ๋„คํŠธ์›Œํฌ, ๋‚ด๋น„๊ฒŒ์ด์…˜, ์ถ”์ฒœ ์‹œ์Šคํ…œ ๋“ฑ 2026๋…„์˜ ํ˜„๋Œ€์  ์‹œ์Šคํ…œ ์ „๋ฐ˜์„ ์ง€ํƒฑํ•˜๊ณ  ์žˆ๋‹ค. ์‹ค์ œ ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด์„œ๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ ์„ ํƒ๊ณผ ์ ์ ˆํ•œ ์ˆœํšŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดํ•ด๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค.

Technical Solution

  • ๊ทธ๋ž˜ํ”„ ํ‘œํ˜„ ๋ฐฉ์‹ ์„ ํƒ: Adjacency List(๊ณต๊ฐ„ O(V + E), ์—ฃ์ง€ ํ™•์ธ O(degree))๋ฅผ ๋Œ€๊ทœ๋ชจ ์‹ค์ œ ๊ทธ๋ž˜ํ”„(์†Œ์…œ ๋„คํŠธ์›Œํฌ, ๋กœ๋“œ ๋„คํŠธ์›Œํฌ)์—, Adjacency Matrix(๊ณต๊ฐ„ O(Vยฒ), ์—ฃ์ง€ ํ™•์ธ O(1))๋ฅผ ์†Œ๊ทœ๋ชจ ์™„์ „ ๊ทธ๋ž˜ํ”„์— ์ ์šฉ
  • ์นœ๊ตฌ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„: BFS๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ ˆ๋ฒจ๋ณ„ ํƒ์ƒ‰(Level 0: ์‚ฌ์šฉ์ž ๋ณธ์ธ, Level 1: ์ง์ ‘ ์นœ๊ตฌ, Level 2: ์นœ๊ตฌ์˜ ์นœ๊ตฌ)์„ ๊ตฌํ˜„
  • ์ ์ˆ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๋„์ž…: ์ถ”์ฒœ ๋Œ€์ƒ ์‚ฌ์šฉ์ž์˜ ์ƒํ˜ธ ์นœ๊ตฌ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด ์ ์ˆ˜ํ™”, ์ƒํ˜ธ ์นœ๊ตฌ๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๋” ๋‚˜์€ ์ œ์•ˆ์œผ๋กœ ํ‰๊ฐ€
  • C++ ๊ตฌํ˜„: unordered_map์„ ์ด์šฉํ•œ Adjacency List ๊ธฐ๋ฐ˜ SocialNetwork ํด๋ž˜์Šค ์ž‘์„ฑ์œผ๋กœ userId์™€ ์นœ๊ตฌ ๋ฆฌ์ŠคํŠธ ๋งคํ•‘
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”: BFS ์กฐ๊ธฐ ์ข…๋ฃŒ(์ „์ฒด ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰์ด ์•„๋‹Œ ํ•„์š”ํ•œ ๊นŠ์ด๊นŒ์ง€๋งŒ ํƒ์ƒ‰) ๊ฐ€๋Šฅ์„ฑ ์–ธ๊ธ‰

Key Takeaway

๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ ์ž๋ฃŒ๊ตฌ์กฐ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(๋ฐ€์ง‘ vs ํฌ์†Œ ๊ทธ๋ž˜ํ”„)๋ฅผ ๋จผ์ € ํŒ๋‹จํ•˜๊ณ , ํ•ด๊ฒฐ ๋Œ€์ƒ ๋ฌธ์ œ์˜ ๊ฑฐ๋ฆฌ/๊ด€๊ณ„ ํŒจํ„ด์— ๋งž๋Š” ์ˆœํšŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜(BFS, DFS, Dijkstra)์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค. ์ด๋Š” LinkedIn ๊ทœ๋ชจ์˜ 500M+ ์‚ฌ์šฉ์ž ๊ทธ๋ž˜ํ”„์—์„œ๋„ 100ms ์ดํ•˜์˜ ์‘๋‹ต ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ธฐ์ดˆ๊ฐ€ ๋œ๋‹ค.


์†Œ์…œ ๋„คํŠธ์›Œํฌ๋‚˜ ์ถ”์ฒœ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์‹œ Adjacency List๋ฅผ ์‚ฌ์šฉํ•œ BFS ๊ตฌํ˜„์œผ๋กœ ์ƒํ˜ธ ์นœ๊ตฌ ์ˆ˜ ๊ธฐ๋ฐ˜ ์ ์ˆ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋„์ž…ํ•˜๋ฉด, ๋‹จ์ˆœ ๋ฌด์ž‘์œ„ ์ถ”์ฒœ ๋Œ€์‹  2๋„ ์—ฐ๊ฒฐ๋ง ๋‚ด์—์„œ ๊ด€๋ จ์„ฑ ๋†’์€ ์‚ฌ์šฉ์ž ์ œ์•ˆ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋•Œ BFS์˜ ์กฐ๊ธฐ ์ข…๋ฃŒ ์˜ต์…˜์„ ํ™œ์šฉํ•˜๋ฉด ์ „์ฒด ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ์—†์ด๋„ ์ถฉ๋ถ„ํ•œ ์ถ”์ฒœ ํ›„๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋‹ค.

์›๋ฌธ ์ฝ๊ธฐ