Stack & Queue

iznueยท2023๋…„ 12์›” 27์ผ
0

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
4/8
post-thumbnail
post-custom-banner

๐Ÿ“— Stack & Queue

  • stack๊ณผ queue๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

๐Ÿ”” Stack

  • stack์€ FILO(์„ ์ž…ํ›„์ถœ) ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์ค‘์— ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹
  • ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•จ
    - stack.append() : ๋ฆฌ์ŠคํŠธ ๊ฐ€์žฅ ๋’ค์ชฝ์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
    - stack.pop() : ๋ฆฌ์ŠคํŠธ ๊ฐ€์žฅ ๋’ค์ชฝ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋ƒ„

๐Ÿ”” Queue

  • queue๋Š” FIFO(์„ ์ž…์„ ์ถœ) ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋จผ์ € ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹
  • 3๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๊ฐ€๋Šฅ
    1. ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒํ˜• ์‚ฌ์šฉ
    - queue์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” enqueue๋ฅผ append(), ๋ฐ์ดํ„ฐ๋ฅผ ๋นผ๋Š” dequeue๋ฅผ pop(0)๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅ
    - pop(0)์€ O(n)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ
    2. queue module ์‚ฌ์šฉ
    - queue module์˜ Queue๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ๋ฐฉํ–ฅ์—์„œ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž„
    - enqueue๋ฅผ ์œ„ํ•ด์„œ๋Š” put(), dequeue๋ฅผ ์œ„ํ•ด์„œ๋Š” get()์„ ์‚ฌ์šฉ
    - get()์€ ๋ฆฌ์ŠคํŠธ์˜ pop()๊ณผ ๋‹ค๋ฅด๊ฒŒ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(1)์ด๋ฏ€๋กœ ํšจ์œจ์ด ์ข‹์Œ
    3. deque class ์‚ฌ์šฉ
    - collections module์˜ deque๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–‘๋ฐฉํ–ฅ์—์„œ ์ถ”๊ฐ€ํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž„
    - ์–‘๋ฐฉํ–ฅ์ด๋ฏ€๋กœ append(), pop(), appendleft(), popleft()๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ๊ฐ ๋งจ ์•ž์—์„œ ์‚ฝ์ž… ๋˜๋Š” ์ œ๊ฑฐ ๊ฐ€๋Šฅ
    - appendleft(), popleft()๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(1)์ด๋ฏ€๋กœ ๋ฆฌ์ŠคํŠธ๋ณด๋‹ค ํšจ์œจ์ด ์ข‹์Œ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์–‘๋ฐฉํ–ฅ์„ ์ง€์›ํ•˜๊ณ  ํšจ์œจ์ด ๊ฐ€์žฅ ์ข‹์€ dequeue๋ฅผ ์ด์šฉํ•ด queue๋ฅผ ๊ตฌํ˜„ํ•จ


๐Ÿ“˜ ๊ด€๋ จ ๋ฌธ์ œ

โญ ๊ฐ™์€ ์ˆซ์ž๋Š” ์‹ซ์–ด
โญ ๊ธฐ๋Šฅ๊ฐœ๋ฐœ
โญ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ
โญ ํ”„๋กœ์„ธ์Šค
โญ ๋‹ค๋ฆฌ๋ฅผ ์ง€๋‚˜๋Š” ํŠธ๋Ÿญ
โญ ์ฃผ์‹๊ฐ€๊ฒฉ

profile
โ‚Šหš โŠน โ™ก https://github.com/iznue
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€