๋ฐฐ์—ด

์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ์ผ๋Œ€์ผ ๋Œ€์‘ํ•ด ๊ด€๋ฆฌํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ณต๊ฐ„์€ ์ธ๋ฑ์Šค์™€ ์ผ๋Œ€์ผ ๋Œ€์‘
  • ์–ด๋–ค ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“  ํ•œ ๋ฒˆ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ → ์ž„์˜ ์ ‘๊ทผ (random access)

 

๋ฐฐ์—ด์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•

# 1. ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•
arr = [0,0,0,0,0,0]
arr = [0] * 6

# 2. ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
arr = list(range(6))			# [0,1,2,3,4,5]

# 3. ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
arr = [0 for _ in range(6)]		# [0,0,0,0,0,0]

 

โ€ป ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด ๋Œ€์‹  ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉ โ€ป

๋ฐฐ์—ด์ด ์ปดํ“จํ„ฐ์— ์ €์žฅ๋œ ๋ชจ์Šต

 

๋ฐฐ์—ด๊ณผ ์ฐจ์›

  • ๋ฐฐ์—ด์€ 2์ฐจ์›, 3์ฐจ์›๊ณผ ๊ฐ™์ด ๋‹ค์ฐจ์› ๋ฐฐ์—ด๋กœ๋„ ์‚ฌ์šฉ
  • ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” 1์ฐจ์›์ด๋ฏ€๋กœ ๋‹ค์ฐจ์› ๋ฐฐ์—ด๋„ 1์ฐจ์› ๊ณต๊ฐ„์— ์ €์žฅ
  • ๋ฐฐ์—ด์€ ์ฐจ์›๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ์—ฐ์† ํ• ๋‹น

 

1์ฐจ์› ๋ฐฐ์—ด

  • ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฐ์—ด ํ˜•ํƒœ
  • ๋ฐฐ์—ด์˜ ๋ชจ์Šต = ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ์‹ค์ œ ๋ฐฐ์—ด์˜ ๋ชจ์Šต

(์™ผ์ชฝ) ๋ฐฐ์—ด์˜ ๋ชจ์Šต (์˜ค๋ฅธ์ชฝ) ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ์‹ค์ œ ๋ฐฐ์—ด์˜ ๋ชจ์Šต

 

2์ฐจ์› ๋ฐฐ์—ด

  • 1์ฐจ์› ๋ฐฐ์—ด์„ ํ™•์žฅํ•œ ๊ฒƒ
# 2์ฐจ์› ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„
arr = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]

# ์ €์žฅ๋œ ๊ฐ’ ์ถœ๋ ฅ
print(arr[2][3])

# ์ €์žฅ๋œ ๊ฐ’์„ ๋ณ€๊ฒฝ
arr[2][3] = 15

# ๋ฆฌ์ŠคํŠธ ์ปดํ”„๋ฆฌํ—จ์…˜์„ ํ™œ์šฉ
arr = [[i]*4 for i in range(3)]

(์™ผ์ชฝ) 2์ฐจ์› ๋ฐฐ์—ด์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ‘œํ˜„ (์˜ค๋ฅธ์ชฝ) ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋œ ์‹ค์ œ ๋ฐฐ์—ด์˜ ๋ชจ์Šต

 

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

  • ๋ฐฐ์—ด์€ ์ž„์˜ ์ ‘๊ทผ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ชจ๋“  ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ๋‹จ ํ•œ ๋ฒˆ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(1)

 

๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ

(1) ๋งจ ๋’ค์— ์‚ฝ์ž…ํ•  ๊ฒฝ์šฐ

  • ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์œ„์น˜์— ์˜ํ–ฅ X
  • ์‹œ๊ฐ„๋ณต์žก๋„ = O(1)

(2) ๋งจ ์•ž์— ์‚ฝ์ž…ํ•  ๊ฒฝ์šฐ

  • ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋“ค์„ ๋’ค๋กœ ํ•œ ์นธ์”ฉ ๋ฏธ๋Š” ์—ฐ์‚ฐ ํ•„์š”
  • ์‹œ๊ฐ„๋ณต์žก๋„ = O(N)

(3) ์ค‘๊ฐ„์— ์‚ฝ์ž…ํ•  ๊ฒฝ์šฐ

  • ํ˜„์žฌ ์‚ฝ์ž…ํ•œ ๋ฐ์ดํ„ฐ ๋’ค์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋งŒํผ ๋ฏธ๋Š” ์—ฐ์‚ฐ ํ•„์š”
  • ์‹œ๊ฐ„๋ณต์žก๋„ = O(N)

 

๋ฐฐ์—ด์„ ์„ ํƒํ•  ๋•Œ ๊ณ ๋ คํ•  ์ 

  • ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ํ™•์ธ
    • ํ‘œํ˜„ํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ๋Ÿฐํƒ€์ž„์—์„œ ๋ฐฐ์—ด ํ• ๋‹น ์‹คํŒจ
    • ๋ณดํ†ต ์ •์ˆ˜ํ˜• 1์ฐจ์› ๋ฐฐ์—ด์€ 1000๋งŒ๊ฐœ, 2์ฐจ์› ๋ฐฐ์—ด์€ 3000*3000 ํฌ๊ธฐ๊ฐ€ ์ตœ๋Œ€
  • ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…์ด ๋งŽ์€์ง€ ํ™•์ธ
    • ๋ฐฐ์—ด์€ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฏ€๋กœ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฝ์ž…ํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐœ์ƒ

โ€ป ์ฐธ๊ณ  ์ž๋ฃŒ โ€ป

https://wikidocs.net/221191

+ Recent posts