728x90
풀이 방법
컬렉션 큐를 사용하고 풀고 있었는데, back이 가장 뒤에 있는 정수를 출력하라고 해서 pollLast가 있는 덱으로 바꾸어 풀었다. 큐는 이러한 메소드도 없고, 인덱스도 존재하지 않아 back을 출력하는데 어려움이 있다고 생각이 들었다. 그래서 덱을 사용하였다.
사용 개념
덱, 큐
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
package Data_Structure;
//BOJ 10845 큐
//https://c-king.tistory.com/
/*
컬렉션 큐를 사용하고 풀고 있었는데, back이 가장 뒤에 있는 정수를 출력하라고 해서 pollLast가 있는 덱으로 바꾸어 풀었다.
큐는 이러한 메소드도 없고, 인덱스도 존재하지 않아 back을 출력하는데 어려움이 있다고 생각이 들었다. 그래서 덱을 사용하였다.
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
Deque<Integer> q = new ArrayDeque<>();
int cnt = Integer.parseInt(st.nextToken());
for(int i = 0; i < cnt; i++){
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(q.poll()).append('\n');
else sb.append(-1).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(q.peekFirst()).append('\n');
else sb.append(-1).append('\n');
break;
case "back":
if(!q.isEmpty()) sb.append(q.peekLast()).append('\n');
else sb.append(-1).append('\n');
break;
}
}
System.out.println(sb);
}
}
|
cs |
728x90
'BOJ(Java)' 카테고리의 다른 글
자바(백준) 1026 보물 (0) | 2021.04.05 |
---|---|
자바(백준) 10866 덱 (0) | 2021.04.04 |
자바(백준) 10828 스택 (0) | 2021.04.04 |
자바(백준) 10989 수 정렬하기 3 (0) | 2021.04.01 |
자바(백준) 2751 수 정렬하기 2 (0) | 2021.03.31 |