Algorithm

[백준-10845번/Java] 큐

1984 2022. 11. 14. 15:52

* java.util.Queue 클래스 사용법 공부하기

[Queue/LinkedList 로 구현]

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws IOException {
		Scanner scan = new Scanner(System.in);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		Queue<Integer> queue = new LinkedList<>();

		int N = scan.nextInt();
		int i = 0;

		for (int j = 0; j < N; j++) {
			String cmd = scan.next();
			if (cmd.equals("push")) {
				i = scan.nextInt();
				queue.add(i);
			} else if (cmd.equals("pop")) {
				if (queue.size() > 0) {
					bw.append(queue.poll() + "\n");
				} else {
					bw.append(-1 + "\n");
				}
			} else if (cmd.equals("size")) {
				bw.append(queue.size() + "\n");
			} else if (cmd.equals("empty")) {
				if (queue.size() == 0) {
					bw.append(1 + "\n");
				} else {
					bw.append(0 + "\n");
				}
			} else if (cmd.equals("front")) {
				if (queue.size() == 0) {
					bw.append(-1 + "\n");
				} else {
					bw.append(queue.peek() + "\n");
				}
			} else if (cmd.equals("back")) {
				if (queue.size() == 0) {
					bw.append(-1 + "\n");
				} else {
					bw.append(i + "\n");
				}
			}
		}

		bw.flush();
		bw.close();
		scan.close();
	}

}

 

[ArrayList 로 구현]

import java.io.*;
import java.util.*;

public class Main {
	static ArrayList<Integer> arr = new ArrayList<Integer>();

	public static void main(String[] args) throws IOException {
		Scanner scan = new Scanner(System.in);
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int N = scan.nextInt();

		for (int j = 0; j < N; j++) {
			String cmd = scan.next();
			if (cmd.equals("push")) {
				int i = scan.nextInt();
				arr.add(i);
			} else if (cmd.equals("pop")) {
				if (arr.size() > 0) {
					int num = arr.get(0);
					arr.remove(0);
					bw.append(num + "\n");
				} else {
					bw.append(-1 + "\n");
				}
			} else if (cmd.equals("size")) {
				bw.append(arr.size() + "\n");
			} else if (cmd.equals("empty")) {
				if (arr.size() == 0) {
					bw.append(1 + "\n");
				} else {
					bw.append(0 + "\n");
				}
			} else if (cmd.equals("front")) {
				if (arr.size() == 0) {
					bw.append(-1 + "\n");
				} else {
					bw.append(arr.get(0) + "\n");
				}
			} else if (cmd.equals("back")) {
				if (arr.size() == 0) {
					bw.append(-1 + "\n");
				} else {
					bw.append(arr.get(arr.size() - 1) + "\n");
				}
			}
		}
		bw.flush();
		bw.close();
		scan.close();
	}

}
728x90