[Python μλ£κ΅¬μ‘°] Stack(μ€ν) ꡬννκΈ°
μ€λμ LIFO κ΅¬μ‘°μΈ Stackμ νμ΄μ¬μμ ꡬννλ λ°©λ²μ λν΄ ν¬μ€ν νλ €κ³ ν©λλ€!
μ€νκ³Ό λ°λλ‘ FIFO κ΅¬μ‘°μΈ νμ λν΄ μκ³ μΆλ€λ©΄ !? μλ ν¬μ€ν μ μ°Έκ³ ν΄μ£ΌμΈμ!
[Python μλ£κ΅¬μ‘°] Queue (ν) ꡬννκΈ°
Queue(ν) ?! νλ FIFO (First - In - First - Out) λ‘μ¨ λ¨Όμ μ½μ λ item μμΌλ‘ κΊΌλ΄μ΄μ§λ€κ³ μ΄ν΄νλ©΄ μ¬μΈκ±° κ°μ΅λλ€. νμ μ’ λ₯μλ μμ°¨μ μΈ νμ μν ν(μνμΌλ‘ μ΄λ£¨μ΄μ§ Queue)κ° μμ΅λλ€. Python.
yunaaaas.tistory.com
Stack(μ€ν) ?!
μ€νμ LIFO(Last - In - First - Out)λ‘μ¨ κ°μ₯ λμ€μ λ€μ΄μ¨ μλ£κ° κ°μ₯ λ¨Όμ κΊΌλ΄μ΄μ§λ€λΌκ³ μ΄ν΄νλ©΄ μ½μ΅λλ€.
Pythonμμ Stack ꡬννκΈ°
Pythonμμλ κΈ°λ³Έ ν΄λμ€μΈ listλ₯Ό ν΅ν΄ μ€ν μλ£κ΅¬μ‘°λ₯Ό μ½κ² ꡬνν μμμ΅λλ€.
list pop / push μκ°λ³΅μ‘λ
pop Item | list.pop( ) | O(1) |
push Item | list.append(item) | O(1) |
listλ₯Ό μ΄μ©νμ¬ Stack ꡬννκΈ°
stack - Init
listλ νμ΄μ¬μμ μμ£Ό μ°μ΄κΈ° λλ¬Έμ 리μ€νΈ μλ£ν μμ±μ λ§€μ° μ΅μνμ€κ±° κ°μ΅λλ€.
stack = [] # []
stack = [1,2,3] # [1,2,3]
stack - push
μ€νμ μμλ₯Ό λ£μ λμλ append λ©μλλ₯Ό μ΄μ©ν΄ 리μ€νΈμ κ°μ₯ λ§μ§λ§μ μμλ₯Ό λ£μΌμ€ μ μμ΅λλ€.
stack = []
stack.append(4) # [4]
stack.append(2) # [4,2]
stack - pop
μ€νμ μμλ₯Ό μ κ±°ν λλ pop λ©μλλ₯Ό μ΄μ©νμ¬ λ¦¬μ€νΈμ κ°μ₯ λ§μ§λ§ μμλ₯Ό μ κ±°ν©λλ€.
μ΄λ popλ©μλμ μν΄ μ κ±°λ μμλ₯Ό λ¦¬ν΄ λ°μ΅λλ€.
stack = [1,2,3,4]
top = stack.pop() # stack [1,2,3]
print(top) # 4
stack - top
μ€νμμ μμλ₯Ό μ κ±°νμ§ μκ³ κ°μ Έμ€κΈ°λ§ ν λμλ [-1]μ μ΄μ©νμ¬ μ°Ύμ μ μμ΅λλ€.
stack = [1,2,3,4]
top = stack[-1]# 4 , stack [1,2,3,4]
print(top) # 4
μ€νμ ꡬνν μ μλ 리μ€νΈλ₯Ό μμΈνκ² μκ³ μΆλ€λ©΄!? μλ ν¬μ€ν κΈμ μ°Έκ³ ν΄μ£ΌμΈμ!
리μ€νΈ(List)
νμ΄μ¬μμ κ°μ₯ λ§μ΄ μ¬μ©λλ μλ£νμΈ λ¦¬μ€νΈ(List)μ λν΄ κ°λ¨ν μ 리ν΄λ³΄κ³ μ ν©λλ€. 리μ€νΈμ λͺλͺ κΈ°λ₯λ€μ λν΄μ μκ°ν΄λ³Όκ²μ! π List μΈλ±μ±/μ¬λΌμ΄μ± κΈ°λ₯ 리μ€νΈμμ μνλ κ°
yunaaaas.tistory.com