์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- ๋ฌธ์์ด๋ค์ง๊ธฐ
- ์ธํ ๋ฆฌ์ ์ด
- HTML
- java
- ๊ณ์ฐ๊ธฐ๋ง๋ค๊ธฐ
- ๋ถํธ์บ ํ
- FilterChain
- Spring Data JDBC
- Publishing
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ
- CSS
- ์ปฌ๋ ์ ํ๋ ์์ํฌ
- ์ฒซ๊ธ์๋๋ฌธ์
- ๊ทธ๋ฆฌ๋
- testing
- ๋ฐ์ผ๋ฆฌ์ฝ๋ฉ
- ์๋ฐ
- spring data jpa
- ํ์ดํ๋ก๊ทธ๋๋ฐ
- ๊นํ๋ธ
- ํ๊ณ
- ์ ๋ค๋ฆญ์ค
- ๋ฐฑ์๋
- fibonacci
- ์๋ฃ๊ตฌ์กฐ
- CLI๋ช ๋ น์ด
- ๊ฑฐ๋ญ์ ๊ณฑ
- ์คํ๋ง
- Spring Security
Archives
- Today
- Total
๋์ ๋ชจ์
023 | Data Structure - Stack & Queue ๋ณธ๋ฌธ
๐ Data Structure
๐ค ์๋ฃ๊ตฌ์กฐ
๋ฐ์ดํฐ๋?
- ๋ฐ์ดํฐ: ๋ฌธ์, ์ซ์, ์๋ฆฌ, ๊ทธ๋ฆผ, ์์ ๋ฑ ์ค์ํ์ ๊ตฌ์ฑํ๊ณ ์๋ ๋ชจ๋ ๊ฐ
- ๋ฐ์ดํฐ๊ฐ ์๋ฏธ์์ด์ง๋ ค๋ฉด: ๋ถ์ → ์ ๋ฆฌ → ํ์ฉ
- ๋ฐ์ดํฐ์ ์ฌ์ฉ: ํ์ ๋ชฉ์ ์ ๋ฐ๋ผ ํํ ๊ตฌ๋ถ → ๋ถ๋ฅ
์๋ฃ๊ตฌ์กฐ๋?
- ์๋ฃ์ ํจ์จ์ ์ธ ์ ์ฅ๊ณผ ์ฒ๋ฆฌ๋ฅผ ์ํด ์๋ฃ์ ๋ชฉ์ ์ ๋ฐ๋ผ ๋ถ๋ฅํ์ฌ ๊ตฌ์กฐํํ ๊ฒ
- ์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ์ ๊ตฌ๋ถ
๐ Stack
๐ค Stack ์ ์ & ๊ตฌ์กฐ
- Stack: ์๋ค, ์์ด๋ค
- ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์๋ ์๋ฃ๊ตฌ์กฐ
- stack์ ๋ฐ์ดํฐ
- ๋ฃ๊ธฐ: push()
- ๊บผ๋ด๊ธฐ: pop()
๐ค Stack ํน์ง
LIFO(Last-In First-Out) - ํ์ ์ ์ถ๊ตฌ์กฐ
- ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๋ ์ ์ผ ๋์ค์ ๋์ด
- ๊ฐ์ฅ ๋จผ์ ๋ค์ด๊ฐ ํ๋ง๊ธ์ค๋ ์์๊บผ๊ฐ ๋ค ๋จนํ๊ธฐ ์ ๊น์ง ๋์ฌ ์ ์์
public class Stack {
// Integerํ Stack ์ ์ธ
Stack<Integer> stack = new Stack();
// ์ฐจ๋ก๋๋ก ์คํ์ ๋ฃ๊ธฐ
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
/* 1๋ฒ์ด ์ ์ผ ๋จผ์ ๋ค์ด๊ฐ๊ณ 4๋ฒ์ด ๋ง์ง๋ง์ผ๋ก ๋ค์ด๊ฐ
--------------------
1 <- 2 <- 3 <- 4
--------------------
*/
// ์คํ์ด ๋น ๋๊น์ง ๋ฐ์ดํฐ ๊บผ๋ด๊ธฐ
stack.pop();
stack.pop();
stack.pop();
stack.pop();
/* ์ ์ผ ๋ง์ง๋ง์ ์๋ 4๋ถํฐ 3, 2, 1 ์ฐจ๋ก๋ก ๋์ด
--------------------
--------------------
*/
}
๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋ฃ๊ณ ๋บ ์ ์์
- ์๋ฌด๋ฆฌ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ๋ง ๋ฃ๊ณ , ๋บ ์ ์์
- ํ๊บผ๋ฒ์ ์ฌ๋ฌ๊ฐ ๋ฃ๊ฑฐ๋ ๋นผ๊ธฐ ์๋จ
ํ๋์ ์ ์ถ๋ ฅ ๋ฐฉํฅ์ ๊ฐ์ง๊ณ ์์
- ์ ์ถ๋ ฅ์ ๋ฐฉํฅ์ด ๋จ๋ฐฉํฅ ⇒ ์ ํ์ ์ ๊ทผ
- ์ ์ถ๋ ฅ์ ๋ฐฉํฅ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉด stack์ด ์๋
๐ค Stack ์ฌ์ฉ ์์
- ๋ธ๋ผ์ฐ์ ์ ๋ค๋ก๊ฐ๊ธฐ(←), ์์ผ๋ก๊ฐ๊ธฐ(→)
- ์๋ก์ด ํ์ด์ง ์ ์ ์, ํ์ฌ ํ์ด์ง๋ฅผ ์ด์ ์คํ์ ๋ณด๊ด
- ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ผ๋ก ์ด์ ํ์ด์ง๋ก ๊ฐ ๋๋
- ํ์ฌ ํ์ด์ง๋ฅผ ๋ค์์คํ์ ๋ณด๊ดํ๊ณ
- ๊ฐ์ฅ ๋์ค์ ๋ณด๊ด๋ ํ์ด์ง๋ฅผ ์ด์ ์คํ์์ ํ์ฌํ์ด์ง๋ก ๊ฐ์ ธ์ด
- ์์ผ๋ก๊ฐ๊ธฐ ๋ฒํผ์ผ๋ก ๋ค์ํ์ด์ง๋ก ๊ฐ ๋๋
- ๋ค์์คํ์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ณด๊ด๋ ํ์ด์ง๋ฅผ ๊ฐ์ ธ์ด
- ํ์ฌ ํ์ด์ง๋ฅผ ์ด์ ์คํ์ ๋ณด๊ด
๐ Queue
๐ค Queue ์ ์ & ๊ตฌ์กฐ
- Queue: ์ค์ ์์ ๊ธฐ๋ค๋ฆฌ๋ค, ๋๊ธฐํ๋ ฌ
- ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์ค๋ ์๋ฃ๊ตฌ์กฐ
- Queue์ ๋ฐ์ดํฐ
- ๋ฃ๊ธฐ: enqueue
- ๊บผ๋ด๊ธฐ: dequeue
๐ค Queue ํน์ง
FIFO(First-In First-Out) - ์ ์ ์ ์ถ๊ตฌ์กฐ (= LILO(Last-In Last-Out)
- ๋จผ์ ๋ค์ด๊ฐ ๋ฐ์ดํฐ๊ฐ ์ ์ผ ์ฒ์์ ๋์ด
๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋ฃ๊ณ ๋บ ์ ์์
- ์๋ฌด๋ฆฌ ๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ๋ง ๋ฃ๊ณ , ๋บ ์ ์์
- ํ๊บผ๋ฒ์ ์ฌ๋ฌ๊ฐ ๋ฃ๊ฑฐ๋ ๋นผ๊ธฐ ์๋จ
ํ๋์ ์ ์ถ๋ ฅ ๋ฐฉํฅ์ ๊ฐ์ง๊ณ ์์
- ์ ์ถ๋ ฅ์ ๋ฐฉํฅ์ด ๋ค๋ฆ
- ์ ์ถ๋ ฅ์ ๋ฐฉํฅ์ด ๊ฐ์ผ๋ฉด queue๊ฐ ์๋
๐ค Queue ์ฌ์ฉ ์์
- ํ๋ฆฐํฐ
- ๋ฌธ์ ์์ฑ ํ ์ถ๋ ฅ์ ๋๋ฅด๋ฉด ํด๋น ๋ฌธ์๋ ์ธ์ ์์ Queue์ ๋ค์ด๊ฐ
- ํ๋ฆฐํฐ๋ ์ธ์ ์์ Queue์ ๋ค์ด์จ ๋ฌธ์๋ฅผ ์์๋๋ก ์ธ์
๐ค ๋ฒํผ(Buffer)
- ์ปดํจํฐ ์ฅ์น๋ค ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ๊ฐ ์ฅ์น ์ฌ์ด์ ์กด์ฌํ๋ ์๋๋ ์๊ฐ ์ฐจ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด ์์๊ธฐ์ต์ฅ์น์ ์๋ฃ๊ตฌ์กฐ๋ก Queue๋ฅผ ์ฌ์ฉํ๋ ๊ฒ
โ Ref.
DS01 - ์๋ฃ๊ตฌ์กฐ์ ์ ์์ ๋ถ๋ฅ
์๋ฃ๊ตฌ์กฐ๋? ์๋ฃ๊ตฌ์กฐ(Data struct)๋ ์ปดํจํฐ์์ ์ฌ์ฉํ ์๋ฃ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ ์ ์๋๋ก ์๋ฃ์ ํน์ฑ๊ณผ ์ฌ์ฉ์ฉ๋์ ๋ฐ๋ผ ๋ถ๋ฅํ๊ณ ์ ๋ฆฌํ์ฌ ๊ตฌ์กฐํ ํ ๊ฒ์ ๋ปํ๋ค. ์๋ฃ๊ตฌ
0verc10ck.tistory.com
'SEB > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
026 | Time Complexity (0) | 2022.07.28 |
---|---|
024 | Data Structure - Tree, Graph (0) | 2022.07.26 |
019 | Java - I/O, Thread, JVM (0) | 2022.07.19 |
018 | Java - Enum, Annotation, Lambda, Stream (0) | 2022.07.18 |
017 | Java - ๐ฅ Practical | Collection Framework (0) | 2022.07.16 |
Comments