ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 16์ผ์ฐจ
์์ฒญ ๋ ์ง : 11/16/2021
์์ฒญ ๊ฐ์ : ํ
ํ๋ก๊ทธ๋๋ฐ ์ค ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋ : Data in and Data out ๋ง ๊ฐ๋ฅ
https://visualgo.net/en/list์ queueํญ์์ ์๋ฎฌ๋ ์ด์
๊ฐ๋ฅ
FIFO (First in, First out)
- LILO๋ผ๊ณ ๋ ๋ถ๋ฆผ (last in last out)
- ๊ฐ์ฅ ๋จผ์ ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ๊บผ๋ผ ์ ์๋ ๊ตฌ์กฐ (์คํ๊ณผ ๋ฐ๋)
- front (์)์์ ๋ฌด์กฐ๊ฑด ์ญ์ ๊ฐ ์ผ์ด๋๊ณ , rear(๋ค, tail์ด๋ผ๊ณ ๋ ํจ) ์์ ๋ฌด์กฐ๊ฑด ์ฝ์ ์ด ์ผ์ด๋๋ค
- "์ค ์๊ธฐ"์ ๋์ผ
์ฉ์ด
- enqueue : ํ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋ ๊ธฐ๋ฅ
- dequeue : ํ์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๊ธฐ๋ฅ
- peek : ๋งจ ์์ ๋ฐ์ดํฐ๊ฐ ๋ฌด์์ธ์ง ํ์ณ๋ณด๋ ๊ธฐ๋ฅ (literarlly peek..)
JAVA์ ํ
- java์์ ๊ธฐ๋ณธ์ ์ผ๋ก java.util ํจํค์ง์ Queue ํด๋์ค๋ฅผ ์ ๊ณตํจ
- add(value), poll(), peek(), remove() ๋ฉ์๋ ๊ฐ๋ฅ
- Queue ํด๋์ค์์ ๋ฐ์ดํฐ ์์ฑ์ ์ํด์๋ LinkedListํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํจ
import ๋ฌธ
import java.util.LinkedList<>();
import java.util.Queue
ํ ์์ฑ
Queue<Integer> q = new LinkedList<>();
Queue<Node> q2 = new LinkedList<>(); //BFS์์ ์์ฃผ ์ฐ์. Node ํด๋์ค์ x,y,distance๋ฅผ set& get
Queue<Integer> q3 = new Queue<>(); //๋ถ๊ฐ๋ฅ !
์์, ํ ํด๋์ค๋ฅผ ์์ฑํ๊ธฐ ์ํด์๋ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํ๋๋ฐ, 3๋ฒ์งธ ์ค์ ์ฝ๋์ฒ๋ผ ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ง ์์ ์ฝ๋๋ก๋ ํ ์์ฑ์ด ๋ถ๊ฐ๋ฅํ๋ค!
๋ฐ์ดํฐ ์ถ๊ฐ
add(value) ๋๋ offer(value)๋ฅผ ์ฌ์ฉ
q.add(1);
q2.offer(new Node(2,3));
๋ฐ์ดํฐ ์ญ์
poll()๊ณผ remove()๋ฅผ ์ฌ์ฉ
ํ๋ ๋ฌด์กฐ๊ฑด ๋ฐ์ดํฐ๋ฅผ ์์ ์ฝ์
ํ๊ณ , ๋งจ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค.
๋ฐ๋ผ์, ํน์ ์๋ฆฌ๋จผํธ๋ฅผ ์ง์ ํ ํ์ ์์ด poll() ๋๋ remove()๋ฅผ ์ฌ์ฉํ๋ฉด ๋งจ ๋ค์ ์์๋ฅผ ์ ๊ฑฐํ ์ ์๋ค
q.remove();
Node info = q2.poll(); //์ด๋ฐ์์ผ๋ก info ์ ๋งจ ๋ง์ง๋ง ์์๋ฅผ ๋ด์์ ํ์ฉ ๊ฐ๋ฅ
ArrayList ํด๋์ค๋ก enqueue์ dequeue ๊ตฌํํด๋ณด๊ธฐ
- dequeue : ํ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด null ๋ฆฌํด
public class MyQueue<T>{
private ArrayList<T> queue = new ArrayList<T>();
public void enqueue(T item){
queue.add(item);
}
public T dequeue(){
if(q.isEmpty()){ return null; }
//else:
return queue.remove(0); //๋งจ ์ ์์๋ฅผ ์ญ์
}
public boolean isEmpty(){
if(queue.size()==0){ return true; }
return false;
}
}
ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ๋ฐ๋ก๊ฐ๊ธฐ๐ https://bit.ly/3FVdhDa
์๊ฐ๋ฃ 100% ํ๊ธ ์ฑ๋ฆฐ์ง | ํจ์คํธ์บ ํผ์ค
๋ฑ 5์ผ๊ฐ ์งํ๋๋ ํ๊ธ์ฑ๋ฆฐ์ง๋ก ์๊ฐ๋ฃ 100% ํ๊ธ๋ฐ์ผ์ธ์! ๋ ๋ฆ๊ธฐ์ ์ ์๊ธฐ๊ณ๋ฐ ๋ง์ฐจ ํ์น!
fastcampus.co.kr
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค.