JuneBee 2022. 5. 18. 10:42
728x90
λ°˜μ‘ν˜•

νŠΉμ„±

  1. μŠ€νƒκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ‚½μž…κ³Ό μ‚­μ œμ˜ μœ„μΉ˜κ°€ μ œν•œμ μΈ 자료ꡬ쑰
  2. μ„ μž… μ„ μΆœ ꡬ쑰 (First In First Out)
    큐에 μ‚½μž…ν•œ μˆœμ„œλŒ€λ‘œ μ›μ†Œκ°€ μ €μž₯되며, κ°€μž₯ λ¨Όμ € μ‚½μž…λœ μ›μ†Œκ°€ κ°€μž₯ λ¨Όμ € μ‚­μ œλ¨
  3. κΈ°λ³Έ μ—°μ‚° : enQueue, deQueue μ£Όμš” λ©”μ„œλ“œ: offer(), poll(), isEmpty(), size(), peek()
  4. 주둜 LinkedList 클래슀λ₯Ό Queue μΈν„°νŽ˜μ΄μŠ€μ˜ κ΅¬ν˜„μ²΄λ‘œ 많이 μ‚¬μš©ν•œλ‹€
🀦🏻‍♀️ 큐 μ•ˆμ— 아무것도 없을 λ–„, μŠ€νƒκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ
   poll() : μ‚­μ œ - λ₯Ό λΆˆλ €μ„ λ•Œ, μ˜ˆμ™Έ λ°œμƒ μ²˜λ¦¬κ°€ μ—†λ‹€
   remove() : μ‚­μ œ - λ₯Ό λΆˆλ €μ„ λ•Œ, μ˜ˆμ™Έκ°€ λ°œμƒν•œλ‹€

μ˜ˆμ‹œ

import jvava.util.Queue;
import java.util.LinkedList;
public class QueueTest{
public static void main(String [] args){
int N = 10;
Queue <int[]> queue = new LinkedList<>(); //μ†λ‹˜ 번호, λΆ•μ–΄λΉ΅ 갯수
int customer = 1;

queue.offer(new int[] {customer, 1});
while (N >0){
	if(!queue.isEmpty()){
		int[] p = queue.poll();
		int buyable = (N>p[1])? p[1]: N; //μ‚΄μˆ˜μžˆλŠ” λΆ•μ–΄λΉ΅ 수
		N -= buyable ; //νŒ”λ¦° 갯수
		if(N==0){//μ „λΆ€ νŒ”λ¦Ό
		System.out.println("λ§ˆμ§€λ§‰ μ†λ‹˜: "+ p[0] +"사간 갯수: "+buyable); }
		else{
		System.out.println(p[0]+"번 μ†λ‹˜μ΄ " + buyable+ "만큼 뢕어빡을 μ‚¬κ°”μŠ΅λ‹ˆλ‹€\\nλ‚¨μ€κ°œμˆ˜: "+N);
		p[1] ++; //μ‚¬λ €λŠ” λΆ•μ–΄λΉ΅ 증가
		queue.offer(p);
		queue.offer(new int[] {++customer,1});	}
  }//end of isEmpty
} //end of while
} //end of main
} //end of class

 

728x90
λ°˜μ‘ν˜•