기초 알고리즘 - 큐(6)

Code_Alpacat·2021년 11월 17일
0

기초 알고리즘!

목록 보기
6/19

큐에 대한 문제다.

큐를 사용하기 위해 필요한 조건은 둘이다.

LinkedList
Queue

Queue<Integer> queue = new LinkedList<>();

위와 같이 선언하고 기능들은 아래와 같다.

  • add
  • offer
  • poll
  • remove
  • isEmpty
  • size
  • peek

이 문제는 back만 잘 처리해주면 문제 없다.
이 문제에서 back은 가장 뒤에 있는 수를 출력하는 명령어다.
그렇다면 push를 할 때, queue에 쌓인 수가 back이므로 변수를 선언해 입력받으면 된다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;


public class Hello_world {
 
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Queue<Integer> queue = new LinkedList<>();
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());
		int back_value = 0;
		while(N-->0) {
			 st = new StringTokenizer(br.readLine()," ");
			String str = st.nextToken();
			
			switch(str) {
			
			case "push":
					
					back_value = Integer.parseInt(st.nextToken());
					queue.offer(back_value);
				
				break;

			case "pop": 
				if(queue.isEmpty()) {
					sb.append(-1).append('\n');
					break;
				} else sb.append(queue.poll()).append('\n'); 
				break;
				
			case "size":
				sb.append(queue.size()).append('\n');
				
				break;
				
			case "empty":
				if(queue.isEmpty()) {
					sb.append(1).append('\n');
				} else sb.append(0).append('\n');
			
				break;
				
			case "front":
				if(queue.isEmpty()) {
					sb.append(-1).append('\n');
				} else sb.append(queue.peek()).append('\n'); 
				break;
				
			case "back":
				if(queue.isEmpty()) {
					sb.append(-1).append('\n');
					
				} else sb.append(back_value).append('\n'); 
				
				break;
			}
				
				
			}
		
		System.out.println(sb);
		}
		
		
	}
profile
In the future, I'm never gonna regret, cuz I've been trying my best for every single moment.

0개의 댓글

관련 채용 정보