๐ก 1. Stack(์คํ)์ด๋?
1. ์คํ : Stack
์ ๋จผ์ ๋ค์ด๊ฐ ์์๊ฐ ๊ฐ์ฅ ๋์ค์ ๋์ค๊ฒ ๋๋ ์ ์
ํ์ถ(LIFO, Last In First Out)
์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
2. ๊ตฌํ : Stack
์ ๊ตฌํํ ๋๋, ์์๋ฅผ ์ ๊ฑฐํด์ผ ํ๋ ArrayList
๋ณด๋ค๋ index
๋ฅผ ์กฐ์ ํ๊ณ , ์ด๊ธฐํ ํ๋ ๋ฐฉ์๊ณผ ํจ๊ป Array
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.
3. ์ฃผ์ ์ฐ์ฐ :
1. push(์ฝ์ ) :Stack
์ ์๋ก์ด item์ ์ถ๊ฐํ๋ค.
2. pop(์ญ์ ) : ๊ฐ์ฅ ์์ ์๋ ์์๋ฅผ returnํ๊ณ ,Stack
์์ ํด๋น ์์๋ฅผ ์ ๊ฑฐํ๋ค.
3. peek(์ต์๋จ ์์ดํ ๋ฐํ) : ๊ฐ์ฅ ์์ ์๋ ์์๋ฅผ return ํ๋ค.pop
๊ณผ๋ ๋ค๋ฅด๊ฒ ์คํ์์ ํด๋น ์์๋ฅผ ์ ๊ฑฐํ์ง ์๋๋ค.
+ top : ๊ฐ์ฅ ์์ ์๋ item์ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ธ Stack Class์ ๋ฉค๋ฒ ๋ณ์์ด๋ค.isEmpty(), isFull(), peek()
๋ฑ์ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ค.
4. ์คํ์ ์ฌ์ฉ ์ฉ๋ : DFS(๊น์ด ์ฐ์ ํ์) ์๊ณ ๋ฆฌ์ฆ, ๋ฌธ์์ด ๋ค์ง๊ธฐ ๋ฑ์ ๊ตฌํํ ๋ Stack ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
5. ์คํ์ด ์ค์ ๋ก ์ฌ์ฉ๋ ๊ณณ : ๋ธ๋ผ์ฐ์ ์ '๋ค๋ก๊ฐ๊ธฐ', ctrl + z ๋๋๋ฆฌ๊ธฐ ์ฐ์ฐ, Stack ๋ฉ๋ชจ๋ฆฌ ๋ฑ
๐ก 2. Queue(ํ)๋?
1. ํ : Queue
๋ ๋จผ์ ๋ค์ด๊ฐ ์์๊ฐ ๊ฐ์ฅ ๋์ค์ ๋์ค๊ฒ ๋๋ ์ ์
์ ์ถ(FIFO, First In First Out)
์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
2. ๊ตฌํ : Queue
๋ฅผ ๊ตฌํํ ๋๋, item์ด ์ญ์ ๋ ํ ์์ผ๋ก ๋ชจ๋ ์์๋ฅผ ์๋น๊ฒจ์ผ ํ๋ Array
๋ณด๋ค๋, ๋จ์ํ ์ฐ๊ฒฐ์ ๋์ด ๊ฐ์ฒด 1๊ฐ๋ง ์ ๊ฑฐํ๋ฉด ๋๋ ArrayList
๋ก ๊ตฌํํ๋ ๊ฒ์ด ๋ ์ข๋ค.
3. ์ฃผ์ ์ฐ์ฐ :
1. enqueue (์ฝ์ ) :Queue
์ ์๋ก์ด item์ ์ฝ์ ํ๋ค.
2. dequeue (์ญ์ ) :Queue
์ ๊ฐ์ฅ ์์ ์๋ item์ ํ์์ ์ญ์ ํ๊ณ returnํ๋ค.
4. ํ์ ์ฌ์ฉ ์ฉ๋ : BFS(๋๋น ์ฐ์ ํ์) ์๊ณ ๋ฆฌ์ฆ ๋ฑ
5. ํ๊ฐ ์ค์ ๋ก ์ฌ์ฉ๋ ๊ณณ : ๋ฒํผ, ํ๋ฆฐํฐ ํ, CPU ์ค์ผ์ค๋ง Ready ํ ๋ฑ
๐ ์ถ์ฒ
[๋งํฌ] https://velog.io/@humblechoi/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack-Queue ([์๋ฃ๊ตฌ์กฐ] Stack & Queue)
'๐งช ์ปดํจํฐ๊ณผํ : CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์์ธํจํด] ๋์์ธ ํจํด(1) - ๋์์ธ ํจํด์ ๋ฌด์์ธ๊ฐ? (0) | 2022.12.27 |
---|---|
[์๋ฃ๊ตฌ์กฐ] Priority Queue (์ฐ์ ์์ ํ) ์ธํฐ๋ทฐ ๋๋น (0) | 2022.10.23 |
[์๋ฃ๊ตฌ์กฐ] Array์ LinkedList์ ์ฐจ์ด (์ธํฐ๋ทฐ ๋๋น) (0) | 2022.10.23 |
[๊ฐ๋ฐ๊ณตํต] Call by value์ Call by reference (Java, Python, C/C++) (0) | 2022.10.11 |
[Algorithm] ํ ์ ๋ ฌ (Heap Sort) (0) | 2022.09.03 |