μ μμ²λΌ μμ μ¬λ¦¬λ μ€ν(Stack)
μ€ν
μ λ°μ΄ν°λ₯Ό ν
μ΄λΈ μμ μ μμ²λΌ μμ μ¬λ¦¬λ μλ£κ΅¬μ‘°μ
λλ€.
μμμ¬λ¦° μ μλ₯Ό κΊΌλΌ λ κ°μ₯ μμ μλ μ μλΆν° μ°¨λ‘λ‘ κΊΌλ΄λ κ²μ²λΌ, μ€νμμλ λ§μ§λ§μ μΆκ°λ λ°μ΄ν°κ° κ°μ₯ λ¨Όμ μ κ±°λ©λλ€.
μ¦ LIFO(Last In, First Out)
, "λ§μ§λ§μ λ€μ΄μ¨ κ²μ΄ κ°μ₯ λ¨Όμ λκ°λ€"λΌλ κ·μΉμ λ°λ¦
λλ€.
μ€νμ μ΄λ»κ² νμ©λλμ?
-
μΉ λΈλΌμ°μ μ λ€λ‘ κ°κΈ°: λΈλΌμ°μ λ λ°©λ¬Έν νμ΄μ§λ€μ μ€νμ μ μ₯ν©λλ€. λ€λ‘ κ°κΈ° λ²νΌμ λλ₯Ό λλ§λ€
λ§μ§λ§μ λ°©λ¬Έν νμ΄μ§
λΆν° μ°¨λ‘λ‘ μ΄μ νμ΄μ§λ‘ λμκ°λλ€. -
ν μ€νΈ μλν°μ μ€ν μ·¨μ: ν μ€νΈ μλν°λ μ¬μ©μκ° μ λ ₯ν ν μ€νΈλ₯Ό μ€νμ μ μ₯ν΄λκ³ , μ€ν μ·¨μ λ²νΌμ λλ₯Ό λλ§λ€
λ§μ§λ§μ μ λ ₯ν ν μ€νΈ
λΆν° μ°¨λ‘λ‘ μμ ν©λλ€.
μ€νμ μ£Όμ μ°μ°
μ€νμμλ λͺ κ°μ§ κΈ°λ³Έ μ°μ°μ μ¬μ©ν©λλ€.
-
push: μ€νμ 맨 μμ μλ‘μ΄ λ°μ΄ν°λ₯Ό
μΆκ°
νλ μ°μ°μ λλ€. -
pop: μ€νμ 맨 μμ μλ λ°μ΄ν°λ₯Ό
μ κ±° λ° λ°ν
νλ μ°μ°μ λλ€. -
peek: μ€νμ 맨 μμ μλ λ°μ΄ν°λ₯Ό μ κ±°νμ§ μκ³
νμΈ
λ§ νλ μ°μ°μ λλ€. -
is_empty: μ€νμ΄
λΉμ΄ μλμ§
λ₯Ό νμΈνλ μ°μ°μ λλ€.
νμ΄μ¬μμμ μ€ν ꡬν
νμ΄μ¬μμλ 리μ€νΈ(List)λ₯Ό μ΄μ©ν΄ κ°λ¨ν μ€νμ ꡬνν μ μμ΅λλ€.
리μ€νΈμ append()
λ©μλλ₯Ό μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μΆκ°νκ³ , pop()
λ©μλλ₯Ό μ¬μ©ν΄ λ°μ΄ν°λ₯Ό μ κ±°νλ©΄ μ€νμ κΈ°λ³Έμ μΈ κΈ°λ₯μ ꡬνν μ μμ΅λλ€.
class Stack: # μ€ν μ΄κΈ°ν def __init__(self): self.stack = [] # push μ°μ°: μ€νμ λ°μ΄ν° μΆκ° def push(self, item): self.stack.append(item) print(f"Push: {item}κ° μ€νμ μΆκ°λμμ΅λλ€.") # pop μ°μ°: μ€νμμ λ°μ΄ν° μ κ±° def pop(self): if not self.is_empty(): item = self.stack.pop() print(f"Pop: {item}κ° μ€νμμ μ κ±°λμμ΅λλ€.") return item else: print("Pop: μ€νμ΄ λΉμ΄ μμ΅λλ€.") return None # peek μ°μ°: μ€νμ μ΅μμ κ° νμΈ def peek(self): if not self.is_empty(): return self.stack[-1] else: print("Peek: μ€νμ΄ λΉμ΄ μμ΅λλ€.") return None def is_empty(self): return len(self.stack) == 0 # μ€ν μ¬μ© μμ my_stack = Stack() my_stack.push(1) # Push: 1μ΄ μ€νμ μΆκ° my_stack.push(2) # Push: 2κ° μ€νμ μΆκ° print(f"Peek: νμ¬ μ€νμ μ΅μμ κ°μ {my_stack.peek()}μ λλ€.") my_stack.pop() # Pop: 2κ° μ€νμμ μ κ±° my_stack.pop() # Pop: 1μ΄ μ€νμμ μ κ±° my_stack.pop() # μ€νμ΄ λΉμ΄ μμ΄ μ κ±°ν μ μμ
μ 리νλ©΄?
-
μ€νμ
LIFO(Last In, First Out)
ꡬ쑰λ₯Ό λ°λ₯΄λ μλ£κ΅¬μ‘°μ λλ€. -
μ£Όμ μ°μ°μΌλ‘λ push(μΆκ°), pop(μ κ±°), peek(νμΈ), is_empty(λΉμ΄ μλμ§ νμΈ)μ΄ μμ΅λλ€.
λΉμΉΈμ κ°μ₯ μ ν©ν μ€νμ μ°μ°μ 무μμΌκΉμ?
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result