Guidelines

쀄을 μ„œλŠ” λŒ€κΈ°μ—΄, 큐(Queue)

큐(Queue)λŠ” 쀄을 μ„œλŠ” λŒ€κΈ°μ—΄κ³Ό 같은 μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

λ¨Όμ € 쀄을 μ„  μ‚¬λžŒμ΄ κ°€μž₯ λ¨Όμ € μ„œλΉ„μŠ€λ₯Ό λ°›λŠ” κ²ƒμ²˜λŸΌ, νμ—μ„œλŠ” λ¨Όμ € λ“€μ–΄μ˜¨ 데이터가 λ¨Όμ € μ²˜λ¦¬λ©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ ꡬ쑰둜 인해 νλŠ” FIFO(First In, First Out), "λ¨Όμ € λ“€μ–΄μ˜¨ 것이 λ¨Όμ € λ‚˜κ°„λ‹€"λΌλŠ” 원칙을 λ”°λ₯΄λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.


νλŠ” μ–΄λ–»κ²Œ ν™œμš©λ˜λ‚˜μš”?

  • ν”„λ¦°ν„° μž‘μ—… λŒ€κΈ°μ—΄: ν”„λ¦°ν„°λŠ” λ¨Όμ € λ“€μ–΄μ˜¨ 인쇄 μž‘μ—…μ„ λ¨Όμ € μ²˜λ¦¬ν•©λ‹ˆλ‹€.

  • μ½œμ„Όν„° λŒ€κΈ°μ—΄: 고객이 μ „ν™”λ₯Ό κ±Έλ©΄ λŒ€κΈ°μ—΄μ— μΆ”κ°€λ˜κ³ , 상담원이 μžμœ λ‘œμ›Œμ§€λ©΄ λ¨Όμ € λŒ€κΈ° 쀑인 고객뢀터 상담을 μ‹œμž‘ν•©λ‹ˆλ‹€.


큐의 μ£Όμš” μ—°μ‚°

νμ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” 연산은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • enqueue: 큐의 끝에 μƒˆλ‘œμš΄ 데이터λ₯Ό μΆ”κ°€ν•˜λŠ” μ—°μ‚°μž…λ‹ˆλ‹€.

  • dequeue: 큐의 μ•žμ—μ„œ 데이터λ₯Ό 제거 및 λ°˜ν™˜ν•˜λŠ” μ—°μ‚°μž…λ‹ˆλ‹€.

  • peek: 큐의 μ•žμ— μžˆλŠ” 데이터λ₯Ό μ œκ±°ν•˜μ§€ μ•Šκ³  ν™•μΈν•˜λŠ” μ—°μ‚°μž…λ‹ˆλ‹€.

  • is_empty: 큐가 λΉ„μ–΄ μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” μ—°μ‚°μž…λ‹ˆλ‹€.


νŒŒμ΄μ¬μ—μ„œμ˜ 큐 κ΅¬ν˜„

리슀트의 append() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 데이터λ₯Ό μΆ”κ°€ν•˜κ³ , pop(0) λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 데이터λ₯Ό μ œκ±°ν•˜λ©΄ 큐의 기본적인 κΈ°λŠ₯을 κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŒŒμ΄μ¬μ—μ„œμ˜ 큐 κ΅¬ν˜„ 예제
class Queue: # 큐 μ΄ˆκΈ°ν™” def __init__(self): self.queue = [] # 큐에 데이터 μΆ”κ°€ def enqueue(self, item): self.queue.append(item) print(f"Enqueue: {item}κ°€ 큐에 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€.") # νμ—μ„œ 데이터 제거 def dequeue(self): if not self.is_empty(): item = self.queue.pop(0) print(f"Dequeue: {item}κ°€ νμ—μ„œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€.") return item else: print("Dequeue: 큐가 λΉ„μ–΄ μžˆμŠ΅λ‹ˆλ‹€.") return None # 큐의 κ°€μž₯ μ•žμ— μžˆλŠ” 데이터 확인 def peek(self): if not self.is_empty(): return self.queue[0] else: print("Peek: 큐가 λΉ„μ–΄ μžˆμŠ΅λ‹ˆλ‹€.") return None # 큐가 λΉ„μ–΄ μžˆλŠ”μ§€ 확인 def is_empty(self): return len(self.queue) == 0 # 큐 μ‚¬μš© μ˜ˆμ‹œ my_queue = Queue() my_queue.enqueue(1) # Enqueue: 1이 큐에 μΆ”κ°€ my_queue.enqueue(2) # Enqueue: 2κ°€ 큐에 μΆ”κ°€ print(f"Peek: ν˜„μž¬ 큐의 κ°€μž₯ μ•žμ— μžˆλŠ” 값은 {my_queue.peek()}μž…λ‹ˆλ‹€.") my_queue.dequeue() # Dequeue: 1이 νμ—μ„œ 제거 my_queue.dequeue() # Dequeue: 2κ°€ νμ—μ„œ 제거 my_queue.dequeue() # 큐가 λΉ„μ–΄ μžˆμ–΄ μ œκ±°ν•  수 μ—†μŒ

μ •λ¦¬ν•˜λ©΄?

  • νλŠ” FIFO(First In, First Out) ꡬ쑰λ₯Ό λ”°λ₯΄λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

  • μ£Όμš” μ—°μ‚°μœΌλ‘œλŠ” enqueue(μΆ”κ°€), dequeue(제거), peek(데이터 확인), is_empty(λΉ„μ–΄ μžˆλŠ”μ§€ 확인)이 μžˆμŠ΅λ‹ˆλ‹€.

Mission
0 / 1

νλŠ” λ¨Όμ € λ“€μ–΄μ˜¨ 데이터가 λ¨Όμ € μ²˜λ¦¬λ˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

O
X

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result