๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“š Computer Science/Data Structure

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ฐฐ์—ด(Array)์ด๋ž€?

by hyebin (Helia) 2023. 2. 10.
๋ฐ˜์‘ํ˜•

๋ฐฐ์—ด(Array)

  • ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋ชจ์Œ
  • ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  • ์š”์†Œ(elemnet): ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ๊ฐ์˜ ๊ฐ’
  • ์ธ๋ฑ์Šค(index): ๋ฐฐ์—ด์—์„œ์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ˆซ์ž (0๋ถ€ํ„ฐ ์‹œ์ž‘)

 

๋ฐฐ์—ด ํ‘œํ˜„

  • ํฌ๊ธฐ๊ฐ€ 5์ธ Intํ˜• ๋ฐฐ์—ด array๋ฅผ ์„ ์–ธ

swift

var array: [Int] = [1, 2, 3, 4, 5]

python

array = [1, 2, 3, 4, 5]

C

int array[5] = {1, 2, 3, 4, 5};

Java

Int[] array = {1, 2, 3, 4, 5};

 

๋‹ค์ฐจ์› ๋ฐฐ์—ด (Multidimensional Array)

  • index๊ฐ€ 2๊ฐœ ์ด์ƒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด
  • ๋‹ค์ฐจ์› ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๋ฅผ 2๊ฐœ๋ถ€ํ„ฐ ์ตœ๋Œ€ n๊ฐœ๊นŒ์ง€ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
//2์ฐจ์›
var array: [[Int]] = [[1,2], [2,3], [3,4]]

//3์ฐจ์›
var array: [[[Int]]] = [[[1,2], [3,4]],[[11, 12], [13,14]]]

 

๋ฐฐ์—ด์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„

Operation average case worst case
read O(1) O(1)
insert O(n) O(n)
delete O(n) O(n)
search O(n) O(n)

 

๋ฐฐ์—ด์˜ ํŠน์ง•

  • ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๊ตฌ์„ฑ
  • ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹จ์ผ ๋ธ”๋กํ™”ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ €์žฅ
  • ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ €์žฅ
  • ๋ฐ์ดํ„ฐ์— ์ˆœ์„œ๊ฐ€ ์žˆ์œผ๋ฉฐ, indexing ๋ฐ slicing ๊ฐ€๋Šฅ
    • indexing: index๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์ • ์š”์†Œ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๊ฒƒ
    • slicing: ์š”์†Œ์— ํŠน์ • ๋ถ€๋ถ„์„ ๋ถ„๋ฆฌํ•ด ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ

 

๋ฐฐ์—ด์˜ ์žฅ์ 

  • index๋ฅผ ์ด์šฉํ•œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ด ๋ชจ๋“  ์š”์†Œ์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๊ณต๊ฐ„ ๋‚ญ๋น„๊ฐ€ ์ ์Œ
  • ๊ฐ„๋‹จํ•˜๊ณ  ์‚ฌ์šฉ์ด ์‰ฌ์›€
  • ์ฐธ์กฐ๋ฅผ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ด ํ•„์š” ์—†์Œ

 

๋ฐฐ์—ด์˜ ๋‹จ์ 

  • ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ ํ›„, ํ• ๋‹น๋œ ์ •์  ๋ฉ”๋ชจ๋ฆฌ ๋•Œ๋ฌธ์— ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
  • ์ž๋ฃŒ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ์— ๋น„ํšจ์œจ์ 
  • ๋ฉ”๋ชจ๋ฆฌ ์žฌ์‚ฌ์šฉ ๋ถˆ๊ฐ€

 

๋ฐฐ์—ด์˜ ์‚ฌ์šฉ

  • ์ˆœ์ฐจ์  ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๊ฐ’๋ณด๋‹ค๋Š”  ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ
  • ๋‹ค์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ
  • ํŠน์ • ์š”์†Œ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฝ์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ๋ฐ์ดํ„ฐ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์œผ๋ฉฐ, ์š”์†Œ๊ฐ€ ์ž์ฃผ ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
๋ฐ˜์‘ํ˜•