๐ํ : ์ ์ ์ ์ถ(First In First Out, FIFO)์ ์๋ฃ๊ตฌ์กฐ๋ก, ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋ค.
ํ ๊ตฌํ
Java์์ ํ๋ ์ฃผ๋ก Queue<E> ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ , LinkedList<E> / ArrayDeque<E> / PriorityQueue<E> ํด๋์ค๋ฅผ ์ฌ์ฉํด์ ๊ตฌํํ ์ ์๋ค.
Queue<Integer> queue = new LinkedList<>();
Queue<Integer> queue = new ArrayDeque<>();
๊ธฐ๋ณธ ๋ฉ์๋
- offer(E e) : ํ์ ๋งจ ๋ค์ ์์๋ฅผ ์ถ๊ฐํ๋ค.
- ์ฑ๊ณตํ๋ฉด true, ์คํจํ๋ฉด false ๋ฐํ
- poll() : ํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๋ฐํํ๋ค.
- ํ๊ฐ ๋น์ด์์ผ๋ฉด null ๋ฐํ
- peek() : ํ์ ๋งจ ์์ ์๋ ์์๋ฅผ ์ ๊ฑฐํ์ง ์๊ณ ๋ฐํํ๋ค.
- ํ๊ฐ ๋น์ด์์ผ๋ฉด null ๋ฐํ
- isEmpty() : ํ๊ฐ ๋น์ด ์๋์ง ์ฌ๋ถ ํ์ธ
- size() : ํ ์์ ์์ ๊ฐ์ ๋ฐํ
์ฝ๋ฉ ํ ์คํธ ๋น์ถ ์ ํ
1. ๋๋น ์ฐ์ ํ์ (BFS)
*BFS : ๊ทธ๋ํ๋ ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ๋ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ฐ๊น์ด ๋ ธ๋๋ค๋ถํฐ ํ์ํ๋ ๊ตฌ์กฐ
***ํ์ DFS/BFS ๊ฒ์๊ธ์์ ์์ธํ ๋ค๋ฃฐ ์์ ***
2. ํ๋ฆฐํฐ ๋ฌธ์ (์ฐ์ ์์ ํ)
*์ฐ์ ์์ ํ : ๊ฐ ์์์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ฌ ์ฐ์ ์์๊ฐ ๋์ ์์๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๋ ์๋ฃ๊ตฌ์กฐ
๐ ์ ํ ์ดํด ์ฝ๋ ๐
//reverseOrder() ๋ฉ์๋ ์ฌ์ฉ์ผ๋ก ์ฐ์ ์์๊ฐ ์ญ์์ผ๋ก ์ ์ฉ๋์ด, ๊ฐ์ฅ ํฐ ๊ฐ์ด ๋จผ์ ๋์ค๋๋ก ๋์
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
pq.offer(1);
pq.offer(3);
pq.offer(2);
System.out.println(pq.poll());
// ์ถ๋ ฅ: 3
3. ์นด๋ ๋ฌธ์ (์ํ ํ / ํ์ ํ)
: ์นด๋๋ฅผ ์ฐจ๋ก๋๋ก ๋ฒ๋ฆฌ๊ณ , ๋จ์ ์นด๋๋ฅผ ์ฐพ๋ ๋ฌธ์
*ํ์ ํ : ํ์์ ์์๋ฅผ ๊บผ๋ธ ํ ๋ค์ ์ฝ์ ํ๋ ๋ฐฉ์
๐ ์ ํ ์ดํด ์ฝ๋ ๐
Deque<Integer> deque = new ArrayDeque<>();
deque.offerLast(1);
deque.offerLast(2);
deque.offerLast(3);
deque.pollFirst(); // ์ฒซ ๋ฒ์งธ ์์ ์ ๊ฑฐ
deque.offerLast(2); // ํ์ ๋์ ๋ค์ ์ถ๊ฐ
ํ ์ฌ์ฉ ์ ์ ์ ์ฌํญ
- ๊ตฌํ ๋ฐฉ์ ์ ํ : ํ์์ ์ฌ์ฉ๋๋ ํด๋์ค๋ค์ ์๋ก ๋ค๋ฅธ ํน์ง์ ์ง๋
, ์ํฉ์ ๋ง๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค.
- LinkedList: ๋ ธ๋ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋์ด ์ฝ์ ๋ฐ ์ญ์ ์ฐ์ฐ์์ ์ผ์ ํ ์ฑ๋ฅ์ ์ ์งํ๋ค.
- ArrayDeque: ๋ฐฐ์ด ๊ธฐ๋ฐ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ์ด ์ข๊ณ ์ฑ๋ฅ์ด ๋น ๋ฅด๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ : ํ๊ฐ ๊ณ์ ์ปค์ง๋ ์๋๋ฆฌ์ค์์๋ ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๊ฐ ์ปค์ง ์ ์๊ธฐ์, ์ํ ํ์ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ ์ฐํ๊ฒ ์ฌ์ฉํด์ผํ๋ค.
'Coding Test > Data Structure & algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์ ๋ ฌ (Sorting) (0) | 2024.09.22 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์๊ฐ ๋ณต์ก๋ (Time Complexity) (2) | 2024.09.22 |
[์๊ณ ๋ฆฌ์ฆ] ๊ทธ๋ฆฌ๋(Greedy) (2) | 2024.09.14 |
[์๋ฃ๊ตฌ์กฐ] ์คํ(Stack) (0) | 2024.09.06 |
[์๋ฃ๊ตฌ์กฐ] ์๋ฃ๊ตฌ์กฐ๋? (0) | 2024.09.06 |