큐란?
큐(queue)는 스택과 같은 선형 리스트 구조로 선입선출 FIFO(First in First out) 방식이다.
즉, 먼저 들어간 것이 먼저 나오므로 원소는 큐의 맨 뒤에 삽입되고 맨 앞 원소가 먼저 삭제된다.
큐의 구조
큐 연산
- add(item): item을 리스트의 끝부분에 추가.
- poll(): 리스트의 첫 번째 항목을 제거.
- peek(): 큐에서 가장 위에 있는 항목을 반환. / 제거 X
- isEmpty(): 큐가 비어 있을 때 true / 아니면 false
https://www.acmicpc.net/problem/10845
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s= new Scanner(System.in);
int back=0;
Queue<Integer> que = new LinkedList<Integer>();
int N= s.nextInt();
for(int i=0;i<N;i++) {
String order=s.next();
switch(order) {
case "push":
int x = s.nextInt();
back=x;
que.add(x);
break;
case "pop":
if(que.isEmpty()) System.out.println(-1);
else System.out.println(que.poll());
break;
case "size":
System.out.println(que.size());
break;
case "empty":
if(que.isEmpty()) System.out.println(1);
else System.out.println(0);
break;
case "front":
if(que.isEmpty()) System.out.println(-1);
else System.out.println(que.peek()); //맨 앞 값 확인
break;
case "back":
if(que.isEmpty()) System.out.println(-1);
else System.out.println(back);
break;
}
}
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 백준 2156번 포도주 시식 (0) | 2020.04.28 |
---|---|
[Java] 동적 계획법 DP(Dynamic Programming) (0) | 2020.04.27 |
[Java] 백준 10828번 & 스택 (0) | 2020.04.21 |
[Java] 백준 1543 문서검색 (0) | 2020.03.11 |
[Java] 백준 1145 적어도 대부분의 배수 (0) | 2020.03.03 |
댓글