본문 바로가기
알고리즘

(백준) 18258번 : 큐 2 - 자바[JAVA]

by 코딩개발 2021. 9. 15.
728x90
반응형

 

package test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test_18258 {
	static int[] queue;
	static int front = 0;
	static int back = 0;
	static int size = 0;

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;

		int N = Integer.parseInt(br.readLine());
		queue= new int[N];

		for(int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");

			switch(st.nextToken()) {
			case "push":
				push(Integer.parseInt(st.nextToken()));
				break;

			case "front":
				sb.append(front()).append('\n');
				break;

			case "back":
				sb.append(back()).append('\n');
				break;

			case "size":
				sb.append(size()).append('\n');
				break;

			case "empty":
				sb.append(empty()).append('\n');
				break;

			case "pop":
				sb.append(pop()).append('\n');
				break;
			}
		}
		System.out.println(sb);
	}

	static void push(int n) {
		queue[back++] = n;
		size++;
	}

	static int front() {
		if(size() == 0) { // queue가 비었을 때
			return -1;
		} else {
			return queue[front];
		}
	}

	static int back() {
		if(size() == 0) { // queue가 비었을 때
			return -1;
		} else {
			return queue[back - 1]; // 값은 back - 1 에 있으므로
		}
	}

	static int size() {
		return size;
	}

	static int empty() {
		if(size() == 0) { // queue가 비었을 때
			return 1;
		} else {
			return 0;
		}
	}

	static int pop() {
		if(size() == 0) { // queue가 비었을 때
			return -1;
		}
		size--;
		return queue[front++];
	}
}
728x90
반응형

댓글