Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Algorithm/Basic

[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ, ํ (feat. ํŒŒ์ด์ฌ)

๊ฐ์ž ๐Ÿฅ” 2021. 9. 13. 16:28
๋ฐ˜์‘ํ˜•

 

1. ํ (Queue)

1.1 ํ (queue)๋ž€?

  • ๊ฐ€์žฅ ๋จผ์ € ๋„ฃ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ
  • ๋Œ€๊ธฐํ–‰๋ ฌ์„ ์ƒ๊ฐ, ๋จผ์ € ๊ธฐ๋‹ค๋ฆฐ ์‚ฌ๋žŒ์ด ๋จผ์ € ํ˜œํƒ์„ ๋ฐ›๋Š”๋‹ค
  • FIFO (FIrst In, First Out) ๋ฐฉ์‹ = LILO (Last In, Last Out) ๋ฐฉ์‹

 

1.2 ํ์˜ ๊ตฌ์กฐ

 

1.3 ํ๋Š” ์–ด๋””์„œ ๋งŽ์ด ์“ฐ์ผ๊นŒ?

  • ํ๋Š” ์ฃผ๋กœ ์šด์˜์ฒด์ œ์—์„œ ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ”„๋กœ์„ธ์Šค ์Šค์ผ€์ฅด๋ง ๋ฐฉ์‹์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์ด ์“ฐ์ธ๋‹ค

 

1.4 ํ์˜ ์šฉ์–ด

  • Enqueue (์ธํ) = ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ธฐ๋Šฅ
  • Dequeue (๋””ํ) = ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๊ธฐ๋Šฅ (ํ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์‚ญ์ œ๋œ๋‹ค.)

 

1.5 ํŒŒ์ด์ฌ์—์„œ Queue ๊ตฌํ˜„ํ•˜๊ธฐ

ํŒŒ์ด์ฌ์—์„œ ์ธํ์™€ ๋””ํ๋Š” put, get์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

import queue

#ํ ์ƒ์„ฑ
q = queue.Queue()

#์ธํ
q.put('hi')
q.put(121)

#ํ ์‚ฌ์ด์ฆˆ ์ถœ๋ ฅ
q.qsize()
# ๊ฒฐ๊ณผ๋Š” ; 2 // hi, 121 ๋“ค์–ด์žˆ์Œ

#๋””ํ
q.get() # 'hi' ์ถœ๋ ฅ
q.get() # 121 ์ถœ๋ ฅ
# FIFO ์ •์ฑ…์„ ๋”ฐ๋ฆ„

 

2. ์Šคํƒ (stack)

2.1 ์Šคํƒ(stack) ์ด๋ž€

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œ์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ
  • ํ•œ์ชฝ ๊ธ‘์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ ๋นผ๋Š” ๊ตฌ์กฐ
  • LIFO (Last In, First Out) ํ๋ž‘ ์ • ๋ฐ˜๋Œ€์˜ ์ •์ฑ…์„ ๋”ฐ๋ฅธ๋‹ค.

 

2.2 ์Šคํƒ์˜ ๊ตฌ์กฐ

 

2.3 ์Šคํƒ์€ ์–ธ์ œ ์‚ฌ์šฉํ• ๊นŒ?

  • ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์˜ ํ”„๋กœ์„ธ์Šค ๊ตฌ์กฐ์˜ ํ•จ์ˆ˜ ๋™์ž‘ ๋ฐฉ์‹์—์„œ ์‚ฌ์šฉ

 

2.4 ์Šคํƒ์˜ ํŠน์ง•

  1. ์žฅ์ 
    • ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•ด์„œ ๊ตฌํ˜„์ด ์‰ฝ๋‹ค. 
    • ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์ฝ๋Š” ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  2. ๋‹จ์ 
    • ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด์•ผํ•œ๋‹ค.
    • ์ตœ๋Œ€์น˜๋ฅผ ์„ค์ •ํ•ด์•ผํ•ด์„œ ๋น„์–ด์žˆ๋Š” ๊ณต๊ฐ„์ด ์žˆ์œผ๋ฉด ๊ณต๊ฐ„์˜ ๋‚ญ๋น„๊ฐ€ ์ƒ๊ธด๋‹ค.
    • ํŒŒ์ด์ฌ์˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•œ ์Šคํƒ์˜ ๊ตฌํ˜„์€ 1000๋ฒˆ๊นŒ์ง€๋งŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2.5 ์Šคํƒ์˜ ์šฉ์–ด

  • push() = ๋ฐ์ดํ„ฐ๋ฅผ ์Šคํƒ์— ๋„ฃ๋Š” ๊ฒƒ ( ํŒŒ์ด์ฌ์˜ list์—์„œ๋Š” append์™€ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š”๋‹ค.)
  • pop() = ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด๋Š” ํ•จ์ˆ˜. ( list ๊ตฌ์กฐ์—์„œ๋„ pop์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.) ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ์žˆ๋Š” ๋‹จ์–ด๊ฐ€ ๋‚˜์˜ค๊ณ , pop(0)์œผ๋กœ ๊ฐ€์žฅ ์ฒ˜์Œ ์ˆ˜๋„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. pop๋˜์–ด์ง„ ๋ฐ์ดํ„ฐ๋Š” ์Šคํƒ(๋ฆฌ์ŠคํŠธ)์—์„œ ์‚ญ์ œ๋œ๋‹ค)

 

๋ฐ˜์‘ํ˜•