https://www.acmicpc.net/problem/18258
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Deque;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
Deque<Integer> q=new LinkedList<>();
int n=Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
while(n-- > 0){
StringTokenizer st=new StringTokenizer(br.readLine());
String str=st.nextToken();
switch(str){
case "push":
q.offer(Integer.parseInt(st.nextToken()));
break;
case "pop":
if(q.isEmpty()) sb.append(-1).append("\n");
else sb.append(q.poll()).append("\n");
break;
case "size":
sb.append(q.size()).append("\n");
break;
case "empty":
if(q.isEmpty()) sb.append(1).append("\n");
else sb.append(0).append("\n");
break;
case "front":
if(q.isEmpty())sb.append(-1).append("\n");
else sb.append(q.peek()).append("\n");
break;
case "back":
if(q.isEmpty()) sb.append(-1).append("\n");
else sb.append(q.peekLast()).append("\n");
break;
}
}
System.out.println(sb);
}
}
큐에 양쪽에 데이터를 넣고 뺄수 있는 자료구조인 덱을 사용한다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 1935번- 후위 표기식2 (0) | 2022.07.19 |
---|---|
[JAVA] 백준 10809번- 알파벳 찾기 (0) | 2022.07.18 |
[JAVA] 백준 20920번- 영단어 암기는 괴로워 (0) | 2022.07.17 |
[JAVA] 백준 1874번- 스택 수열 (0) | 2022.07.16 |
[JAVA] 백준 10799번- 쇠막대기 (0) | 2022.07.15 |