


head와 rear를 0으로 초기화해서 head==rear라면 큐가 빈 상태라는 뜻이다.
큐에 값을 넣을 때는 queue[rear]에 데이터를 추가한 후 rear를 1씩 증가시킨다.
(= 큐는 head부터 rear-1까지 데이터가 들어있다.
import java.io.*; import java.util.*; public class Main { static int[] queue; static int head = 0; static int rear = 0; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); queue = new int[N]; StringBuilder sb = new StringBuilder(); for(int i=0;i<N;i++) { StringTokenizer st = new StringTokenizer(br.readLine()," "); switch(st.nextToken()) { case "push": push(Integer.parseInt(st.nextToken())); break; case "pop": sb.append(pop()).append('\n'); break; case "size": sb.append(size()).append('\n'); break; case "empty": sb.append(empty()).append('\n'); break; case "front": sb.append(front()).append('\n'); break; case "back": sb.append(back()).append('\n'); break; } } System.out.println(sb); } static void push(int n) { queue[rear] = n; rear++; return; } static int pop() { if(head==rear) return -1; int tmp = queue[head]; head++; return tmp; } static int size() { return rear - head; } static int empty() { if(head==rear) return 1; else return 0; } static int front() { if(head==rear) return -1; return queue[head]; } static int back() { if(head==rear) return -1; return queue[rear-1]; } }
'Algorithm > [BOJ] - JAVA' 카테고리의 다른 글
[백준] 2609 : 최대공약수와 최소공배수 (0) | 2022.09.29 |
---|---|
[백준] 10799 : 쇠막대기 JAVA 풀이 (0) | 2022.09.29 |
[백준] 9012 : 괄호 JAVA 풀이 (0) | 2022.09.19 |
[백준] 10828 : 스택 JAVA 풀이 (0) | 2022.09.19 |
[백준] 11444 : 피보나치 수 5 JAVA 풀이 (0) | 2022.09.18 |