- ์คํ
- ํน์ง
- ์ฉ๋
- ์ฐ์ฐ
- ์ฝ์
- ์ญ์
- ์ ๊ทผ
- ๊ตฌํ
- ํ
- ์ฉ๋
- ์ข ๋ฅ
- ์ฐ์ฐ
- ์ฝ์
- ์ญ์
- ์ ๊ทผ
- ๊ตฌํ
- ์ฐ์ ์์ ํ
- ๋ฑ
- ์ฉ๋
- ๊ตฌํ
์คํ
์คํ์ LIFO(Last-In First-Out), ์ฆ ํ์ ์ ์ถ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ ํํ์ด๋ฉฐ, ์ ์์ฒ๋ผ ์์ฌ์ ์ดํ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋น ์ ธ๋๊ฐ๋๋ก ๋์ด์๋ค.
top ๋ณ์๋ ๊ฐ์ฅ ์ต๊ทผ์ ๋ค์ด์จ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ์คํ์ด ๋น์ด์์ผ๋ฉด -1์ด๋ค.
ํน์ง
- LIFO
- ๋ด๋ถ ์์๋ฅผ ํ์ธํ ๋ฐฉ๋ฒ์ด pop ๋ง๊ณ ๋ ์๋ค.
์ฉ๋
์ ๋ ฅ์ ์ญ์์ด ํ์ํ ๋ ์คํ์ ์ฃผ๋ก ์ฌ์ฉํ๋ฉฐ, ํจ์์ ํธ์ถ์์ ๋ณต๊ท ์ฃผ์๋ฅผ ๊ธฐ์ตํ๊ธฐ ์ํด์ ์์คํ ์คํ์ด ์ฌ์ฉ๋๊ธฐ๋ ํ๋ค. ๋ํ ๊ดํธ ๊ฒ์ฌ, ๊ณ์ฐ๊ธฐ, ๋ฏธ๋ก ํ์ ๋ฑ์ ๊ฒฝ์ฐ์ ์คํ์ด ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
๊ณ์ฐ๊ธฐ์์ ์ค์ ํ๊ธฐ์(infix)์ ํ์ ํ๊ธฐ์(postfix)์ผ๋ก ๋ง๋ค์ด ์ปดํจํฐ๊ฐ ๊ณ์ฐํ๊ธฐ ์ข๊ฒ ๋ง๋ค๊ธฐ๋ ํ๋ค.
(ํ๊ธฐ์ ๋ฐ๋ก ์ ๋ฆฌ)
์ฐ์ฐ
์ฝ์
์ฝ์ ์ฐ์ฐ(push) ์ top์ ์์ ํ๋๋ฅผ ์ถ๊ฐํ ํ, top์ ํ ์นธ ์๋ก ์ฌ๋ ค์ค๋ค.
์ญ์
์ญ์ ์ฐ์ฐ(pop) ์ top์์ ์์ ํ๋๋ฅผ ๋บ ํ, top์ ํ ์นธ ์๋๋ก ๋ด๋ ค์ค๋ค.
์ ๊ทผ
์ ๊ทผ ์ฐ์ฐ์ ์๋ค. ๋ค๋ง top์ ์์๋ฅผ ๊บผ๋ด์ง๋ ์๊ณ ํ์ธ๋ง ํ๋ ์ฉ๋์ ์ฐ์ฐ(peek)์ ์๋ค.
๊ตฌํ
์คํ์ ๋ฐฐ์ด ๋๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํํ ์ ์๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๊ตฌํ ์ ์คํ์ ํฌ๊ธฐ ์ ํ์ด ์๋ค๊ณ ๋ณผ ์ ์์ผ๋ฉฐ, ๊ธฐํ ์ฅ๋จ์ ์ '์ฐ๊ฒฐ๋ฆฌ์คํธ' ํํธ์์ ์ค๋ช ํ ๋ฐ์ ๊ฐ๋ค.
C++์์๋ import <stack>;
๋ก C++ STL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์จ ํ, stack<int> stk;
๊ณผ ๊ฐ์ด stack<์๋ฃํ> ์คํ์ด๋ฆ
์ผ๋ก ๋ณ์๋ฅผ ์์ฑํ๋ค.
STL : Standard Template Library (ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
์์ธํ ์ค๋ช ์ STL์ ๋ฐ๋ก ์ ๋ฆฌํด์ ์ฌ๋ฆฌ๊ฒ ๋ค.
(STL ์ ๋ฆฌ)
ํ
ํ๋ FIFO(First-In First-Out), ์ฆ ์ ์ ์ ์ถ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ผ๋ฉฐ, ๋๊ธฐ์ด์ฒ๋ผ ๋ฐ๋ ค์ ๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋น ์ ธ๋๊ฐ๋๋ก ๋์ด์๋ค.
์ฝ์ ์ back์์ ์ผ์ด๋๋ฉฐ, ์ญ์ ๋ front์์ ๋ฐ์ํ๋ค.
์ฉ๋
ํ๋ ๋๊ธฐ์ด์ ๊ตฌํํ ๋ ์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก, ํต์ ์๋ ํจํท์ ๋ชจ๋ธ๋ง์ ์ด์ฉ๋๊ณ ์์คํ ์ํํธ์จ์ด์์๋ ๋ฒํผ๋ง, ์ค์ผ์ค๋ง, ์บ์ ๋ฑ์ ์ด์ฉ๋๋ค. ์๋ฎฌ๋ ์ด์ ์ ์ํ ์ํ์ ๋ชจ๋ธ๋ง์์ ํ์์ด๋ก ์ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค. ๋ํ ์ดํ์ ๋์ฌ BFS(๋๋น ์ฐ์ ํ์)์์๋ ์ฌ์ฉ๋๋ค.
์ข ๋ฅ
-
์ ํ ํ
-
์ํ ํ
์ค๋ฒํ๋ก์ฐ๊ฐ ์ผ์ด๋ ๊ฑฑ์ ์ด ์๋ค.
-
์ฐ์ ์์ ํ
์์๋ค์ ์ฐ์ ์์๋ฅผ ๋งค๊ฒจ, ์ฐ์ ์์์ ๋ง๊ฒ ์ฝ์ / ์ญ์ ์ฐ์ฐ์ ๊ตฌํํ ํ์ด๋ค.
์ฐ์ฐ
์ฝ์
์ฝ์ ์ฐ์ฐ(put == Enqueue) ์ back์ ์์ ํ๋๋ฅผ ์ถ๊ฐํ ํ, back์ ํ๋ ๋ค๋ก ์ฎ๊ฒจ์ค๋ค.
์ญ์
์ญ์ ์ฐ์ฐ(get == Dequeue ) ์ front์์ ์์ ํ๋๋ฅผ ์ญ์ ํ ํ, front๋ฅผ ํ๋ ๋ค๋ก ์ฎ๊ฒจ์ค๋ค.
์ ๊ทผ
peek ์ฐ์ฐ์ ์ด์ฉํ์ฌ front์์ ์์๋ฅผ ํ์ธํ ์ ์๋ค.
๊ตฌํ
ํ ๋ํ ์ฃผ๋ก ๋ฐฐ์ด๋ก ๊ตฌํ๋๊ณ , ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก๋ ๊ตฌํํ ์ ์๊ธด ํ๋ค. ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ํ๋ฅผ ๊ตฌํํ์์ ๋๋ ๊ตณ์ด ํํ ํ๊ฐ ์๋๋๋ผ๋ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ๊ฑฑ์ ์ ์๋ค.
C++์์๋ import <queue>;
๋ก C++ STL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์จ ํ,queue<int> q;
๊ณผ ๊ฐ์ด queue<์๋ฃํ> ํ์ด๋ฆ
์ผ๋ก ๋ณ์๋ฅผ ์์ฑํ๋ค.
STL : Standard Template Library (ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
์์ธํ ์ค๋ช ์ STL์ ๋ฐ๋ก ์ ๋ฆฌํด์ ์ฌ๋ฆฌ๊ฒ ๋ค.
(STL ์ ๋ฆฌ)
์ฐ์ ์์ ํ
(ํด์ผํจ => ์๋ฃ๊ตฌ์กฐ ์ฑ )
๋ฑ
๋ฑ์ deque(double-ended queue)์ด๋ฉฐ front์ rear์์ ์ฝ์ /์ญ์ ์ฐ์ฐ์ด ๋ชจ๋ ๊ฐ๋ฅํ ํ์ด๋ค.
์ฉ๋
๋ณดํต ์ค์ผ์ค๋ง์ ์ฌ์ฉํ๋ฉฐ, ์ฐ์ ์์ ์กฐ์ ์ ํ๋ ์คํ๋ณด๋ค ๋ ์ ์ฉํ๋ค.
๊ตฌํ
์ผ๋ฐ์ ์ผ๋ก ์ด์ค ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๋ค.
C++์์๋ `import ;`๋ก C++ STL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ถ๋ฌ์จ ํ, `deque dq;`์ ๊ฐ์ด `deque<์๋ฃํ> ํ์ด๋ฆ;`์ผ๋ก ๋ณ์๋ฅผ ์์ฑํ๋ค.
STL : Standard Template Library (ํ์ค ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)
์์ธํ ์ค๋ช ์ STL์ ๋ฐ๋ก ์ ๋ฆฌํด์ ์ฌ๋ฆฌ๊ฒ ๋ค.
(STL ์ ๋ฆฌ)
Comment