์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- database
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- html
- ์นดํ๋๊ฐ
- ๋๊ฐ
- ํ๋ก๊ทธ๋๋ฐ
- ๊ฐ์ดํ ์ข ๋ญ๊ฐ๋น
- Python
- JavaScript
- Java
- ์ค๋ผํด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊ฐ๋ฐ
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- ์๋ฐ
- ์ ๋ฆฌํธ๋ฆฌํธ
- ๋ฐ์ํ
- ํ์ด์ฌ
- ์ํ
- ๋ฐฐ์์ ๋ฐฐ์
- ์ฑ
- ์ค๋ธ์
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๋ ์
- ์นํผ๋ธ๋ฆฌ์ฑ
- css
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ฝ๋ฉ
- ์ํ์ฃผ
- Today
- Total
JiYoung Dev ๐ฅ
[์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ] ์ ํ๊ตฌ์กฐ - ์คํ, ํ, ๋ฐํฌ, ๋งํฌ๋๋ฆฌ์คํธ (2023.04.07) ๋ณธ๋ฌธ
[์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ] ์ ํ๊ตฌ์กฐ - ์คํ, ํ, ๋ฐํฌ, ๋งํฌ๋๋ฆฌ์คํธ (2023.04.07)
Shinjio 2023. 4. 9. 12:05๐ ์คํ(stack)
์์ด ๋ป : ์๋ค
์๋ฃ๊ฐ ์์์ ธ ์์. ๋งจ ์๋์ ์๋ ์ ๋ค์ ์ฌ์ฉํ๊ธฐ ์ด๋ ค์. ์์ ์๋ ๋ฐ์ดํฐ๋ถํฐ ์ฌ์ฉํ๋ ๊ตฌ์กฐ
๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์์ ๋๋ ์๋ฃ๊ตฌ์กฐ
๊ฐ์ฅ ๋์ค์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ (ํ์ ์ ์ถ Last In First Out)
์๋ฐ ํ๋ก๊ทธ๋จ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ์คํํ ๋ ๋ด๋ถ์์ ์ฌ์ฉ
ํธ์ฌ(push)์ ํ(pop)์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃธ
โ ํ๋ก๊ทธ๋จ ์์ → main ๋ฉ์๋ push
→ main ๋ฉ์๋๋ฅผ ์คํ์ ๋ฃ์ (main push)
โก main์์์ z๋ผ๋ ๋ฉ์๋ ํธ์ถ(push)
→ z ๋ฉ์๋๋ฅผ ์คํ์ ๋ฃ์
โข z ๋ฉ์๋ ์์ x์ y ๋ฉ์๋ ํธ์ถ
→ x ํธ์ถ(push) > ๋ง๋ฌด๋ฆฌ(pop)
→ y ํธ์ถ(push) > ๋ง๋ฌด๋ฆฌ(pop)
โฃ z ํ
โค main ํ
์คํ์ ๋ค๋ฃฐ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด
โ ํธ์ฌ(push) : ๊ตฌ์กฐ์ ๊ฐ์ ๋ฃ๋๋ค
โก ํ(pop) : ๋งจ ์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ธ๋ค.
์คํ์์๋ ๋ฐ์ดํฐ๊ฐ top์์๋ง ๋ค์ด๊ฐ๊ณ ๋๊ฐ ์ ์์
๊ด๋ จ๋ฌธ์
์ ๋ต : โฃ๋ฒ
โ A, B, C push > C, B, A pop > D push > D pop > A , B, C push > C, B, A pop
โก A, B push > B pop > C push > C pop > D push > D pop > A push > A pop
โข A, B, C push > C, B, A pop > D push > D pop
โฃ A, B, C, D push > D pop > ๋ถ๊ฐ๋ฅ
โป ์คํ ๋ฉ์๋์ vector์ ์ปฌ๋ ์ ๋ฉ์๋๊ฐ ์๋ ์ด์
์ปฌ๋ ์ ์ ๋ชจ๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ํฌํจ(์กฐ๋ถ๋ชจ)
๊ทธ ์๋์ vector๊ฐ ์์(๋ถ๋ชจ)
๊ทธ ์๋์ stack์ด ์์
์ปฌ๋ ์ ์ด ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ๋ค์ ํ์์ ๋ถ๋ชจ(vector), ์์(stack)๊ฐ ์ธ ์ ์์. ๋ฒกํฐ๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ๋ค์ ํ์์ stack์ด ์ธ ์ ์์ → ์์ / ๋ถ๋ชจ ํน์ ์กฐ๋ถ๋ชจ๊ฐ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์์ ๊ฐ์ฒด๊ฐ ์ธ ์ ์์. ๋์ stack์ด ๊ฐ์ง ๊ธฐ๋ฅ์ ๋ถ๋ชจ, ์กฐ๋ถ๋ชจ๊ฐ ์ธ ์ ์์.
โ๏ธ ์คํ์ ํ์ฉ
1. ์น ๋ธ๋ผ์ฐ์ ๋ค๋ก๊ฐ๊ธฐ(๋ฐฉ๋ฌธ๊ธฐ๋ก)
2. ctrl + z
3. ์ญ์ ๋ฌธ์์ด ๋ง๋ค๊ธฐ
4. ํ์ ํ๊ธฐ๋ฒ ๊ณ์ฐ
ํ์ํ๊ธฐ๋ฒ
์ฐ์ฐ์. ์ปดํจํฐ๊ฐ ๊ณ์ฐํ๊ธฐ ์ฌ์ด ํ์, ๊ดํธ๊ฐ ์๊ณ ์ฐ์ฐ์๊ฐ ๋ค์ ์์
8 2 / 3 -
์ผ๋ฐ์ ์ธ ํ๊ธฐ๋ฒ - ์ค์ ํ๊ธฐ๋ฒ (8 / 2 - 3)
5. ์ฌ๊ท์ ์๊ณ ๋ฆฌ์ฆ
์ฌ๊ทํจ์ - ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํจ์
์คํ ์ค๋ฒํ๋ก์ฐ : ์๊ธฐ์์ ์ ๋๋ฌด ๋ง์ด ํธ์ถํ์ฌ ์คํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค ์ฐ๋ ๊ฒฝ์ฐ
โผ ์ฌ๊ทํจ์ ์์ โผ
โ๏ธ ์คํ ์ฃผ์ ๋ฉ์๋
๐ ํ
๋จ์ด ์๋ฏธ : ์ค ์ ์๋ ๊ฒ
์ ์ผ ๋จผ์ ๋ค์ด์จ ๊ฒ์ด ๋จผ์ ๋๊ฐ๋ ์๋ฃ ๊ตฌ์กฐ
๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ (์ ์ ์ ์ถ, First In First Out)
Enqueue ๋ฐ์ดํฐ ๋ค์ด๊ฐ๋๊ฑฐ
Dequeue ๋ฐ์ดํฐ ๊บผ๋ด๋๊ฑฐ / ์์ชฝ๋ถํฐ ๋ฐ์ดํฐ๊ฐ ๋๊ฐ
์คํ์ bottom/top ์์ง๊ตฌ์กฐ์ธ ๋ฐ๋ฉด ํ๋ ์ํ๊ตฌ์กฐ(์/๋ค)
Stack | Queue |
๋ถ๋ชจ๊ฐ vector - ArrayList → ์ฐ์๋ ๊ณต๊ฐ ํ ๋น |
LinkedList์ ํ์์ ๋ฐ์ ๋ง๋ค์ด์ง → ๊ณต๊ฐ์ด ์ฐ์์ ์ด์ง ์์ ๋ค์ ๋ฐ์ดํฐ์ ์ฃผ์๊ฐ(์ฐธ์กฐ๊ฐ)์ ํจ๊ป ์ ์ฅํ๊ณ ์์ด์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ์ ์์ Dequeue๋ฅผ ํ๋ฉด ๊ณต๊ฐ์ ๋ค๋ฅธ ๊ณณ์ ์ธ ์ ์๋๋ก ํจ |
โ๏ธ ํ์ ํ์ฉ
1. ํต์ (๋ฐ์ดํฐ ํต์ ) ex.์์์ ์๋ถ๋ถ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ด
2. ํ๋ฆฐํฐ ์ถ๋ ฅ : ๊ฐ์ฅ ๋จผ์ ๋๊ธฐ์ด์ ์ค๋ฅธ ๋ฌธ์ ๋จผ์ ์ถ๋ ฅ
3. ์ด์์ฒด์ ์ ํ ์คํฌ ์ค์ผ์ค๋ง : ์ ์ ์ ์ถ ์ฒ๋ฆฌ ์ค์ผ์ค๋ง ์ ์ฑ ์ฌ์ฉ
โ๏ธ ํ ์ฃผ์ ๋ฉ์๋
๐ ๋ฐํฌ
์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋ฆฌ์คํธ ์์ชฝ ๋์์ ๋ชจ๋ ๋ฐ์ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ
์คํ๊ณผ ํ๊ฐ ํฉ์ณ์ง ๊ตฌ์กฐ
์๊ธด๊ฑด ํ์ ๋น์ท
ํ๋ ๋ค์์๋ ๋ค์ด์ค๊ธฐ, ๋๊ฐ๋๊ฑด ์์์๋ง ๊ฐ๋ฅ
๋ฐํฌ๋ ๋ฆฌ์คํธ ์์ชฝ ๋์์ ๋ชจ๋ ์ฝ์ , ์ญ์ ๊ฐ๋ฅ
๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๊ฐ ๋นจ๋ฆฌ ๋๊ฐ์๋, ๊ฐ์ฅ ๋ฆ๊ฒ ๋๊ฐ์๋ ์์
๋ฐํฌ๋ฅผ ๊ฐ์ง๊ณ ์คํ์ฒ๋ผ ํน์ ํ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ → ๋ด๊ฐ ๊ท์น์ ์ ํ ์ ์์
- ํ์ชฝ์์ ์ฝ์ , ์ญ์ ๋์์ → ์คํ
- ํ์ชฝ์์ ์ฝ์ , ํ์ชฝ์์ ์ญ์ → ํ
๋ฐํ๋ฅผ ์ฐ๋ ์ด์ : ์๊ฐ์ด ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์
โ๏ธ ๋ฐํฌ ์ฃผ์ ๋ฉ์๋
๐ ๋งํฌ๋๋ฆฌ์คํธ
๋ฐ์ดํฐ๊ฐ ์ฐ์๋ ์์น์ ์ ์ฅ๋์ง ์๊ณ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ ๋ถ๋ถ๊ณผ ๋ค์ ๋ฐ์ดํฐ์ ์ฃผ์ ๋ถ๋ถ์ ๋ณ๋๋ก ๊ฐ์ง๊ณ ์๋ ๊ตฌ์กฐ
๊ฐ ๋ฐ์ดํฐ๋ ๋ ธ๋๋ผ ๋ถ๋ฆ
์์ฃผ ์ฝ์ ์ด๋ ์ญ์ ๊ฐ ์ด๋ฃจ์ด์ง๋ ๊ฒฝ์ฐ ์ฌ์ฉ(์ฐ์๋ ๊ณต๊ฐ์์๋ ํจ์จ์ ์ด์ง ์์. ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋์ด๋ฒ๋ฆฌ๋ฉด ๊ทธ๋ง)
๊ฒ์์ ๋๋ฆผ
โ๏ธ ๋งํฌ๋๋ฆฌ์คํธ ์ข ๋ฅ
๋จ์ผ
๋จ๋ฐฉํฅ ๊ตฌ์กฐ , ์ฃผ์๋ถ๊ฐ 1๊ฐ → ๋ค์๋ฐ์ดํฐ์ ์ฃผ์๋ง ๊ฐ์ง๊ณ ์์ (์ ๋ ์์ผ๋ก ๋ค์ ๋์๊ฐ ์ ์์)
์ด์ ๋ ธ๋์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ์ฒซ๋ฒ์งธ ๋ ธ๋๋ถํฐ ๋ค์ ์ํํด์ผ ํจ
์ด์ค
์ฃผ์๋ถ๊ฐ 2๊ฐ → ์ผ์ชฝ์๋ ์ด์ ๋ฐ์ดํฐ์ ์ฃผ์ ์ค๋ฅธ์ชฝ์๋ ์ดํ ๋ฐ์ดํฐ์ ์ฃผ์
์ํ
๋จ์ผ ๋งํฌ๋๋ฆฌ์คํธ๋ฅผ ์ธ ๋ ์ํ๊ฐ ๊ฐ๋ฅํ๋๋ก(๋ค์ 1๋ฒ์ผ๋ก ๋์๊ฐ ์ ์์)
๋ง์ง๋ง ๋ ธ๋๊ฐ ์ฒซ๋ฒ์งธ ๋ ธ๋์ ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์ด์ ๋ ธ๋์ ์ ๊ทผํ ์ ์์
โ๏ธ ๋งํฌ๋๋ฆฌ์คํธ์ ํ์ฉ
1. ๋ฐฐ์ด๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ ์ ์์.
์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๋ ๊ตฌ์กฐ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์ด ์ ํ์ด ์์. ์ฝ์ ์ญ์ ๊ฐ ๋น๋ฒํ๊ฒ ๋๋ฉด ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋นํจ์จ์
2. ์ฝ์ , ์ญ์ ๊ฐ ๋น๋ฒํ ๊ฒฝ์ฐ ์ฌ์ฉ