๐Stack
๋ฐ์ดํฐ๋ฅผ ์ฐจ๊ณก์ฐจ๊ณก ์์ ์ฌ๋ฆฐ ํํ์ ์๋ฃ๊ตฌ์กฐ
stack: ์์ ์ฌ๋ฆผ
๐ํน์ง
- LIFO(Last In First Out)์ ๊ตฌ์กฐ
- ๋ฐ์ดํฐ์ ์ฝ์
๊ณผ ์ญ์ ๊ฐ ํ์ชฝ ๋
top์์๋ง ์ด๋ฃจ์ด์ง (`top์์๋ง ์ ๊ทผ ๊ฐ๋ฅ) - ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ธฐ ์ํด์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ฉด์ ์งํํด์ผ ํจ
( โต
top์์ธ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์)
๐์ฐ์ฐ
- push(x) : ์คํ์ ๋ฐ์ดํฐ ์ฝ์
- pop() : ์คํ์ ๋งจ ์ ๋ฐ์ดํฐ(
top)๋ฅผ ์ญ์ ํ๊ณ return - isEmpty() : ์คํ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด
True, ์์ผ๋ฉดFalsereturn - size() : ์คํ์ ์๋ ๋ฐ์ดํฐ์ ๊ฐ์๋ฅผ return
- top() : ์คํ์ ๋งจ ์ ๋ฐ์ดํฐ(
top)๋ฅผ return
๐์ฌ์ฉ
- ์น ๋ธ๋ผ์ฐ์ ๋ฐฉ๋ฌธ๊ธฐ๋ก(๋ค๋ก๊ฐ๊ธฐ) : ๊ฐ์ฅ ๋ง์ง๋ง์ ์ด๋ฆฐ ํ์ด์ง๋ถํฐ ๋ค์ ๋ณด์ฌ์ค
- ์คํ ์ทจ์(undo) : ๊ฐ์ฅ ๋ง์ง๋ง์ ์คํ๋ ๊ฒ๋ถํฐ ์คํ ์ทจ์
- ์ญ์ ๋ฌธ์์ด ์์ฑ : ๊ฐ์ฅ ๋ง์ง๋ง์ ์ ๋ ฅ๋ ๋ฌธ์๋ถํฐ ์ถ๋ ฅ
- DFS(Deep-First Search) ๊ตฌํ
- ํ์ ํ๊ธฐ๋ฒ ๊ณ์ฐ
๐์๊ฐ๋ณต์ก๋
| ์ฐ์ฐ | ์๊ฐ๋ณต์ก๋ |
|---|---|
| ์ฝ์ | O(1) |
| ์ญ์ | O(1) |
| ํ์ | O(n) |