본문 바로가기
Algorithm/BaekJoon[Java]

백준 10845 (Queue)

by 씨니 2022. 3. 24.
728x90

▶10845 문제 - 큐

- 큐(Queue) : 선입선출(First In First Out, 가장 먼저 들어온것이 가장 먼저 나감)

- 큐선언 방법 : Queue<Integer> que = new LinkedList<>();  -- 링크드리스트사용.

- offer(), add() : 값을 넣을 때 사용하는 함수

- poll(), remove() : 맨 앞의 값 꺼내 확인하기

- peek(), element() : 값을 꺼내지 않고 맨 앞의 값 확인하기

- clear() : 큐에 저장된 값 지우기. 큐 초기화.

무엇을 return하나의 차이

 

▶풀이방법

- 백준 10828(stack)문제와 유사. -> https://shinny.tistory.com/136

 

백준 10828(stack)

▶ 10828문제 - 스택 - stack : 후입선출(Last In First Out, 나중에 들어온게 가장 먼저 나감). ** stack 사용방법 ** - eclipse java.util.stack기능 사용. - push() : 메소드 사용해 값 넣음. - pop() : 메소..

shinny.tistory.com

import java.util.*;
import java.io.*;
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		int count = Integer.parseInt(br.readLine());
		Queue<Integer> que = new LinkedList<>();
		int num = 0; //queue에 마지막으로 담은 값 저장해 놓기 위함.
		
		for(int i = 0; i < count; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine(), " ");
			String str = st.nextToken();
			switch (str) {
			case "push":
				num = Integer.parseInt(st.nextToken());
				que.add(num);
				break;
			case "pop":
				if(que.isEmpty()) bw.write("-1\n");
				else bw.write(que.poll() + "\n");
				break;
			case "size":
				bw.write(que.size() + "\n");
				break;
			case "empty":
				if(que.isEmpty()) bw.write("1\n");
				else bw.write("0\n");
				break;
			case "front":
				if(que.isEmpty()) bw.write("-1\n");
				else bw.write(que.peek() + "\n");
				break;
			case "back":
				if(que.isEmpty()) bw.write("-1\n");
				else bw.write(num + "\n");
				break;
			}
		}
		
		bw.flush();
		bw.close();
		br.close();
	}
}

++ 주의해야할점

- 위의 문제에서 back기능은 마지막으로 큐에 저장된 값을 출력해야함. 그러므로 큐에 마지막으로 입력된 값 저장하기 위한 num 공간 선언해주어야함.

728x90

'Algorithm > BaekJoon[Java]' 카테고리의 다른 글

백준 11656  (0) 2022.03.25
백준 10866 (Deque)  (0) 2022.03.24
백준 10799  (0) 2022.03.24
백준 9012  (0) 2022.03.24
백준 10828(stack)  (0) 2022.03.24