ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์„œ๋กœ ๋—„ ์ˆ˜ ์—†๋Š” ์ƒํ˜ธ ์˜์กด์ ์ธ ๊ด€๊ณ„์ด๋‹ค. ๊ทธ๋ž˜์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ์— ๋”ฐ๋ผ (์‘์šฉ ์ข…๋ฅ˜์™€ ๋ฒ”์œ„์— ๋”ฐ๋ผ) ์ตœ์ ์˜ ํ•ด๋ฒ•์€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค. ์ด ์„ ํƒ์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š๋ƒ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค.

์ž๋ฃŒ๊ตฌ์กฐ (Data Structure)

  • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ
  • ์ผ๋ จ์˜ ์ผ์ • ํƒ€์ž…๋“ค์˜ ๋ฐ์ดํ„ฐ ๋ชจ์ž„ ๋˜๋Š” ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ตฌ์„ฑ์ฒด

์•Œ๊ณ ๋ฆฌ์ฆ˜ (Algorithm)

  • ์‚ฌ์ „์  ์ •์˜ - ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ, ๋ฐฉ๋ฒ•, ๋ช…๋ น๋“ค์˜ ์ง‘ํ•ฉ
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ฃผ์–ด์ง„ ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์„ ํƒ

์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์–ธ์–ด๋“ค์—์„œ๋„ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค. ์ž๋ฐ” ์—ญ์‹œ ๋Œ€ํ‘œ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์ธ Collection์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

 

 

๐Ÿ’ก ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋ถ„๋ฅ˜

์ž๋ฃŒ๊ตฌ์กฐ ๋ถ„๋ฅ˜๋ฒ•์€ ๋งŽ์ด ์žˆ์ง€๋งŒ, ๋Œ€ํ‘œ์ ์œผ๋กœ ๋งŽ์ด ๋ถ„๋ฅ˜๋˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Linear Data Structure)์™€ ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Nonlinear Data Structure)๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฅ˜๋ฅผ 'ํ˜•ํƒœ์— ๋”ฐ๋ฅธ ์ž๋ฃŒ๊ตฌ์กฐ'๋ผ ๋ณด๊ณ  ๊ฐ ์ž๋ฃŒ๊ตฌ์กฐ์— ์•Œ๋งž๊ฒŒ ๊ตฌ์ฒดํ™” ๋œ ๊ฒƒ๋“ค์„ '๊ตฌํ˜„๋œ ์ž๋ฃŒ๊ตฌ์กฐ'๋ผ๊ณ  ํ•œ๋‹ค.

์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Linear Data Structure) ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด ์„ (line)์ฒ˜๋Ÿผ ์ผ๋ ฌ๋กœ ๋Š˜์–ด์„  ํ˜•ํƒœ๋ฅผ ๋งํ•œ๋‹ค. ๋ณดํ†ต ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•˜๋ฉด ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค„์ง€์–ด ๋Š˜์–ด์„œ ์žˆ๋Š” ๊ฒƒ์„ ๋œปํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ์“ฐ๋Š” int[] ๋ฐฐ์—ด๊ฐ™์€ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋กœ๋Š” ๋ฆฌ์ŠคํŠธ(List), ํ(Queue), ๋ฑ(Deque)์ด ์žˆ๋‹ค.

๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ(Nonlinear Data Structure) ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์™€ ๋ฐ˜๋Œ€์ด๋‹ค. ์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ ๊ฒƒ์ด ์•„๋‹Œ, ๊ฐ ์š”์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์š”์†Œ์™€ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด ๊ฑฐ๋ฏธ์ค„ ๊ฐ™๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋น„์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๊ทธ๋ž˜ํ”„(Graph)์™€ ํŠธ๋ฆฌ(Tree)๊ฐ€ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์œ„ ๋‘ ๊ฐ€์ง€ ๋ถ„๋ฅ˜์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์ง‘ํ•ฉ(Set)์ด ์žˆ๋‹ค. ๋ณดํ†ต ๊ธฐํƒ€ ์ž๋ฃŒ๊ตฌ์กฐ ๋˜๋Š” ์ง‘ํ•ฉ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณธ๋‹ค. ์ง‘ํ•ฉ์˜ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํ˜•์‹์ด ์•„๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•ํƒœ๋Š” ์œ„ ์ด๋ฏธ์ง€๋ฅผ ์ฐธ๊ณ ํ•˜๋„๋ก!

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€