1. ๋ฐฐ์ด (Array)
- ๊ฐ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
- ๊ฐ์ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ์ฅ
- ์ฅ์ : ๋น ๋ฅธ ์ ๊ทผ ๊ฐ๋ฅ
- ๋จ์ : ๋ฐ์ดํฐ์ ์ถ๊ฐ/ ์ญ์ ์ ์ด๋ ค์ <= ๋ฏธ๋ฆฌ ์ต๋ ๊ธธ์ด๋ฅผ ์ง์ ํด์ผํจ
# 1์ฐจ์ ๋ฐฐ์ด
data_list = [1, 2, 3, 4, 5]
# 2์ฐจ์ ๋ฐฐ์ด
data_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
02. ํ (Queue)
- ์ค์ ์๋ ํ์์ ์ ์ฌ
- ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ผ ์ ์๋ ๊ตฌ์กฐ => FIFO(First-In, First-Out)
- ํ์ฉ : ๋ฉํฐ ํ์คํน์ ์ํ ํ๋ก์ธ์ค ์ค์ผ์ฅด๋ง ๋ฐฉ์ ๊ตฌํ์ ์ฌ์ฉ
- Enqueue : ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ธฐ๋ฅ / Dequeue : ํ์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ธฐ๋ฅ
- Queue() : ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ / FIFO
import queue
data = queue.Queue()
data = put("apple")
data = put(3)
data.qsize() #2
data.get() #์ธ๋ฑ์ค๋ฅผ ์
๋ ฅํ์ง ์์(FIFO) => 'apple'
data.qsize() #3
data.get() #1
- LifoQueue() : LIFO(Last-In, First-Out) / ์คํ ๊ตฌ์กฐ
import queue
data = queue.LifoQueue()
data = put("apple")
data = put(3)
data.qsize() #2
data.get() #3
- PriorityQueue() : ์ฐ์ ์์๋๋ก ์ถ๋ ฅ
import queue
data = queue.PriorityQueue()
data = put((10, "apple"))
data = put((5, 1))
data = put((15, "banana"))
data.qsize() #3
data.get() #(5,1)
data.get() #(10, 'apple')
03. ์คํ (Stack)
- ๋ฐ์ดํฐ๋ฅผ ์ ํ์ ์ผ๋ก ์ ๊ทผํ ์ ์๋ ๊ตฌ์กฐ => ํ ์ชฝ ๋์์๋ง ์๋ฃ๋ฅผ ๋ฃ๊ฑฐ๋ ๋บ ์ ์๋ ๊ตฌ์กฐ
- ๊ฐ์ฅ ๋์ค์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋บ ์ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ => LIFO(Last-In, First-Out)
- ํ์ฉ : ์ปดํจํฐ ๋ด๋ถ ํ๋ก์ธ์ค ๊ตฌ์กฐ์ ํจ์ ๋์ ๋ฐฉ์
- push() / pop()
- ์ฅ์
- ๊ตฌ์กฐ๊ฐ ๋จ์ํด์ ๊ตฌํ์ด ์ฝ๋ค
- ๋ฐ์ดํฐ ์ ์ฅ/ ์ฝ๊ธฐ ์๋๊ฐ ๋น ๋ฅด๋ค
- ๋จ์
- ๋ฐ์ดํฐ ์ต๋ ๊ฐฏ์๋ฅผ ๋ฏธ๋ฆฌ ์ ํด์ผํ๋ค(ํ์ด์ฌ์ ๊ฒฝ์ฐ ์ฌ๊ทํจ์๋ 1000๋ฒ๊น์ง๋ง ํธ์ถ ๊ฐ๋ฅ)
- ์ ์ฅ ๊ณต๊ฐ์ ๋ญ๋น๊ฐ ๋ฐ์ํ ์ ์๋ค(๋ฏธ๋ฆฌ ์ต๋ ๊ฐฏ์๋งํผ ์ ์ฅ๊ณต๊ฐ ํ๋ณด ํ์)
- => ์คํ์ ๋จ์ํ๊ณ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ํด ์ฌ์ฉ๋๋ฏ๋ก, ๋ณดํต ๋ฐฐ์ด ๊ตฌ์กฐ๋ฅผ ํ์ฉํจ
stack_list = list()
def push(data):
stack_list.append(data)
def pop():
data = stack_list[-1]
del stack_list[-1]
return data
for index in range(10):
push(index)
"""
range(start,stop,step)
range(5) : 0,1,2,3,4
range(1,6) : 1,2,3,4,5
range(0,6,2) : 0,2,4,6
"""
pop() #9
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Data Structure] ์ถฉ๋(Collision) ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ : ํด์ ํจ์ (0) | 2024.01.26 |
---|---|
[Data Structure] ํด์ ํ ์ด๋ธ (Hash Table) (0) | 2024.01.26 |
[Algorithm] ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋ : ์๊ฐ ๋ณต์ก๋ / Big-O (๋น ์ค) ํ๊ธฐ๋ฒ (1) | 2024.01.26 |
[Data Structure] ๋งํฌ๋ ๋ฆฌ์คํธ (Linked List) (1) | 2024.01.26 |
[Algorithm] ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ (0) | 2024.01.26 |