Coding Test/Data Structure & algorithm

[์ž๋ฃŒ๊ตฌ์กฐ] ์ž๋ฃŒ๊ตฌ์กฐ๋ž€?

๊ต ๋ฏผ 2024. 9. 6. 14:04

๐Ÿ“Œ ์ž๋ฃŒ ๊ตฌ์กฐ : ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

 

๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

 

๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋งŽ์•„์ง์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ด์กŒ๊ณ , ์ด์— ๋”ฐ๋ผ ๋ถˆํ•„์š”ํ•œ ๊ณ„์‚ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋“ค์ด ๋“ฑ์žฅํ–ˆ๋‹ค. 

 

์ž๋ฃŒ ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜
  1. ๋ฐฐ์—ด(Array)
    : ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์ง„ ์š”์†Œ๋“ค์„ ์—ฐ์†์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
    • ๋น ๋ฅธ ์กฐํšŒ : ์ธ๋ฑ์Šค ์‚ฌ์šฉ
    • ๊ณ ์ •๋œ ํฌ๊ธฐ : ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€/์ œ๊ฑฐ ์‹œ ๋น„ํšจ์œจ์ 
    • ์˜ˆ์‹œ > ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ, ์ด์ฐจ์› ๋ฐฐ์—ด์˜ ํ–‰๋ ฌ ๊ณ„์‚ฐ 
  2. ๋ฆฌ์ŠคํŠธ(List)
    :  ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ ์š”์†Œ(Node)๋“ค์ด ํฌ์ธํ„ฐ(next)์™€ ํ‚ค(key)๋ฅผ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ
    • ๋™์  ์กฐ์ • ๊ฐ€๋Šฅ 
    • ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…/์‚ญ์ œ ์šฉ์ด
    • ๋Š๋ฆฐ ๊ฒ€์ƒ‰ ์†๋„ : ์ธ๋ฑ์Šค ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ
    • ์˜ˆ์‹œ > ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น
  3. ์Šคํƒ(Stack)
    : ํ›„์ž…์„ ์ถœ(Last In First Out, LIFO) ์ž๋ฃŒ๊ตฌ์กฐ
    • ์ˆœ์„œ ๋ณด์กด
    • ์˜ˆ์‹œ > ํ•จ์ˆ˜ ํ˜ธ์ถœ ์Šคํƒ, ๊ด„ํ˜ธ ๊ฒ€์‚ฌ
  4. ํ(Queue)
    : ์„ ์ž…์„ ์ถœ(First In, First Out, FIFO) ์ž๋ฃŒ๊ตฌ์กฐ
    • ์˜ˆ์‹œ > BFS ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ
  5. ํŠธ๋ฆฌ(Tree)
    : ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ฆฌ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
    • (์ƒ์œ„๋…ธ๋“œ) ๋ถ€๋ชจ-(ํ•˜์œ„๋…ธ๋“œ) ์ž์‹ ๊ด€๊ณ„๋กœ ๊ตฌ์„ฑ
    • ๋ฃจํŠธ(root) ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์ง€๊ฐ€ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ
    • ์˜ˆ์‹œ > ํŒŒ์ผ ์‹œ์Šคํ…œ
  6. ๊ทธ๋ž˜ํ”„(Graph)
    :๋…ธ๋“œ(์ •์ )๊ณผ ๊ฐ„์„ (์—์ง€)์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ž๋ฃŒ๊ตฌ์กฐ
    • ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„(directed graph) : ์ผ๋ฐ˜ํ†ตํ–‰ ํ™”์‚ดํ‘œ
    • ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„ (undirected pragh) : ์–‘๋ฐฉํ–ฅ ํ™”์‚ดํ‘œ
    • ์˜ˆ์‹œ > ์ง€๋„์˜ ๊ธธ์ฐพ๊ธฐ
  7. ํ•ด์‹œ ํ…Œ์ด๋ธ”(Hash Table)
    : ํ‚ค(key)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ํ•ด๋‹น ํ‚ค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
    • ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ธ๋ฑ์Šค์— ๋งคํ•‘ํ•˜๋Š” ์—ญํ• 
    • ๋น ๋ฅธ ์กฐํšŒ ์†๋„
    • ์˜ˆ์‹œ > ์บ์‹œ ๊ตฌํ˜„

 

์ž๋ฃŒ๊ตฌ์กฐ ์„ ํƒ ๊ธฐ์ค€
  • ์‚ฌ์šฉ ๋ชฉ์  : ๋ฐ์ดํ„ฐ์˜ ์„ ํ˜•์ /๋น„์„ ํ˜•์  ๋“ฑ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์–ด๋–ค ๊ฒƒ์ธ๊ฐ€? 
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ : ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ์˜ ์—ฐ์‚ฐ์ด ์–ผ๋งˆ๋‚˜ ํšจ์œจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๊ฐ€?
  • ๊ณต๊ฐ„ ๋ณต์žก๋„ : ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์™€ ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์€ ์–ด๋–ค๊ฐ€?

 

๊ฒฐ๋ก 

 

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