Data Structure(์ž๋ฃŒ ๊ตฌ์กฐ) ๐Ÿ“šPart.1 ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ค‘์š”์„ฑ๊ณผ Array

Jung Hyun Kimยท2020๋…„ 6์›” 8์ผ
0

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

๋ชฉ๋ก ๋ณด๊ธฐ
2/5

Data Structure(์ž๋ฃŒ ๊ตฌ์กฐ) ๐Ÿ“šPart.1 ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ค‘์š”์„ฑ๊ณผ Array

"Code is just the way to express the algorithms and the data structures."

  • Torvalds, Linus

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

  • ๊ฐ ํŠน์„ฑ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ์œ„ํ•ด structuring ํ•˜๋Š” ๋ฐฉ์‹
  • ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(ex. frontend๋ผ๋ฉด JavaScript)๊ฐ€ ๊ฐ€์ง„ ์ž๋ฃŒ๊ตฌ์กฐ ์ข…๋ฅ˜(ex. Array) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตํžˆ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์™œ ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ์„ค๊ณ„๊ฐ€ ์ค‘์š”ํ• ๊นŒ?

  • self-bar : ํ•„์š”ํ•œ ๋งŒํผ ๋œ์–ด ๊ฐ€์„ธ์š” ํ•˜์ง€๋งŒ ์š•์‹ฌ๋ถ€๋ ค์„œ ๋งŽ์ด ๋œ์–ด๊ฐ€๋ฉด? ํƒˆ.์ด.๋‚œ.๋‹ค. ๋‚ด ํ•œ์ •๋œ ์œ„๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ํ‰์†Œ ๋จน๋Š” ์–‘์„ ์ƒ๊ฐํ•ด์„œ ์•Œ๋งž๊ฒŒ ๋œ์–ด๊ฐ€๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.

  • ์ž๋ฃŒ๊ตฌ์กฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€ ์ด๋‹ค. ๋ฐ์ดํ„ฐ์— ๋งž๋Š” ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ๋งŒ ์ „์ฒด ๊ฐœ๋ฐœ ์‹œ์Šคํ…œ ์šด์˜์ด ์ˆœ์กฐ๋กญ๋‹ค

์ž๋ฃŒ ๊ตฌ์กฐ ํ˜•ํƒœ



  • Primitive Data Structure(๋‹จ์ˆœ ๊ตฌ์กฐ)

    : ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ€์ž…(Integer, Float, Character, Boolean)



  • None-Primitive Data Structure(๋น„๋‹จ์ˆœ ๊ตฌ์กฐ)

    : user defined data structure ๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ primitive data structure ์˜ ๋‹ค์–‘ํ•œ ๋ณตํ•ฉ์ฒด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
    : ์ฆ‰ ๋‹จ์ˆœํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผย ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์— ๋งž๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค

    • Linear Data Structure(์„ ํ˜• ๊ตฌ์กฐ)
      : ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ํ˜•์‹์ด linear sequentialํ•œ ๊ตฌ์กฐ ์ด๋‹ค.
      : ex. Array, List Stacks, Queues)
    • Non-Linear Data Structure(๋น„์„ ํ˜• ๊ตฌ์กฐ)
      : ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ ์‚ฌ์ด์˜ ๊ด€๊ณ„๊ฐ€ 1:n ๋˜๋Š” n:m (ex. Graphs, Trees )

์ถœ์ฒ˜ (https://www.learncomputerscienceonline.com/data-structures-and-algorithms/)


์ž๋ฃŒ๊ตฌ์กฐ ์ฒซ๋ฒˆ์งธ ํฌ์ŠคํŒ…์—์„œ๋Š” None-Primitive Data Structure์˜ Linear Data Structure์˜ ๋Œ€ํ‘œ์ฃผ์ž 'Array' ์— ๋Œ€ํ•ด ์‚ดํŽด ๋ณด๊ฒ ๋‹ค.


Array

1. Array ํŠน์ง•

์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ ๊ตฌ์กฐ

  • Array์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ˆœ์ฐจ์ (ordered)์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค
  • ์ž๋ฃŒ๊ตฌ์กฐ์— ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์š”์†Œ(element)๋ผ๊ณ  ํ•œ๋‹ค).
  • Array๋Š” ์ฃผ๋กœ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ๋“ค์„ ์ˆœ์ฐจ์  ์œผ๋กœ ์ €์žฅํ• ๋•Œ ์‚ฌ์šฉ ํ•œ๋‹ค.

๊ธฐํƒ€ ํŠน์ง•

  • ์‚ฝ์ž…(insertion) ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅ๋˜์–ด ์ƒˆ๋กœ ์‚ฝ์ž…๋˜๋Š” ์š”์†Œ๋Š” array๋กœ push ๋œ๋‹ค.

2. Array ๋‚ด๋ถ€ ๊ตฌ์กฐ


  • Array์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  • Index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋ฉฐ. Index๋Š” ๋งˆ์ด๋„ˆ์Šค ๋ถ€ํ˜ธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, -1 ์€ ๋งจ ๋งˆ์ง€๋ง‰ ์š”์†Œ์ด๋‹ค.

  • ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

3. Array ์˜ ๋‹จ์ 

๐ŸŽFized size data

  • array data๊ฐ€ ๋‹ค ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š” ๊ฒƒ์ด ๋œ๋‹ค.

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

  • ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ด์–ด์ ธ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์‚ญ์ œ๋œ ์š”์†Œ๋กœ ๋ถ€ํ„ฐ ๋’ค์— ์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋“ค์„ ์•ž์œผ๋กœ ํ•œ์นธ์”ฉ ์ด๋™์‹œ์ผœ์ฃผ๋Š”๋ฐ, ์ด๋œป์€ ๋ฐฐ์—ด์—์„œ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅธ ์ž๋ฃŒ ๊ตฌ์กฐ์— ๋น„ํ•ด ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.
    -๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Array ๋Š” ์ •๋ณด๊ฐ€ ์ž์ฃผ ์‚ญ์ œ ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ธฐ์—๋Š” ์ ์ ˆ์น˜ ์•Š๋‹ค.

4. Array์˜ ์‚ฌ์šฉ

  • ์ˆœ์ฐจ์—ด์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ
    • ex) ์ฃผ์‹ ๊ฐ€๊ฒฉ. ์–ด์ œ์˜ 2๋งŒ์›๊ณผ ์˜ค๋Š˜์˜ 2๋งŒ์›์ด ๋‹ค๋ฆ„ >>> ๊ฐ’๋ณด๋‹ค๋Š” ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ
  • ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ >>> Multi-dimensional Array
  • ์–ด๋– ํ•œ ํŠน์ • ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฝ์–ด์•ผ ํ•  ๋•Œ >> index๋ฅผ ํ†ตํ•ด ๊ณง๋ฐ”๋กœ ์ฝ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
  • ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ๊ธ‰๋ณ€ํ•˜๊ฒŒ ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š์„ ๋•Œ
  • ์š”์†Œ๊ฐ€ ์ž์ฃผ ์‚ญ์ œ ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋˜์ง€ ์•Š์„ ๋•Œ
profile
์ฝ”๋ฆฐ์ด ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๐Ÿ’ป๐Ÿ’›๐Ÿค™๐Ÿผ

0๊ฐœ์˜ ๋Œ“๊ธ€