[백준/JAVA] 10866번: 덱
🔺 문제
10866번: 덱
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
🔺 코드
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
61
62
63
64
65
66
67
68
69
|
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));
StringBuilder sb = new StringBuilder();
Deque<Integer> deque = new LinkedList<>();
int N = Integer.parseInt(br.readLine());
while(N --> 0) {
String[] str = br.readLine().split(" ");
String order = str[0];
switch(order) {
case "push_front" :
deque.addFirst(Integer.parseInt(str[1]));
break;
case "push_back" :
deque.addLast(Integer.parseInt(str[1]));
break;
case "pop_front" :
if(deque.size() == 0) {
sb.append("-1").append("\n");
} else {
sb.append(deque.pollFirst()).append("\n");
}
break;
case "pop_back" :
if(deque.size() == 0) {
sb.append("-1").append("\n");
} else {
sb.append(deque.pollLast()).append("\n");
}
break;
case "size" :
sb.append(deque.size()).append("\n");
break;
case "empty":
sb.append(deque.size() == 0 ? 1 : 0).append("\n");
break;
case "front" :
if(deque.size() == 0) {
sb.append("-1").append("\n");
} else {
sb.append(deque.peekFirst()).append("\n");
}
break;
case "back" :
if(deque.size() == 0) {
sb.append("-1").append("\n");
} else {
sb.append(deque.peekLast()).append("\n");
}
break;
}
}
System.out.println(sb);
}
}
|
cs |
✅ 해결 아이디어
✔ 덱 (Deque)
🔺 다른 풀이들
- Queue vs Deque 설명에다가 항상 친절한 풀이..🤍
[백준] 10866번 : 덱 - JAVA [자바]
www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다
st-lab.tistory.com
- 덱도 isEmpty() 사용 가능!
[백준/BOJ] 10866번: 덱 - JAVA [자바]
10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에
yermi.tistory.com
💬 느낀 점
덱 언젠가 문제로 한 번 메소드 정리하면 좋겠다.. 고 최근에 생각했는데
금방 만났네..ㅎ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 덱 메소드..
[Java(자바)] Deque(덱/데크) 자료구조
카프카의 소스코드를 보던 중 내부에서 Deque 클래스를 사용한 부분을 보게 되었다. Deque(덱 혹은 데크)은 Double-Ended Queue의 줄임말로 큐의 양쪽으로 엘리먼트의 삽입과 삭제를 수행할 수 있는 자료
soft.plusblog.co.kr
[Java] Deque (덱/데크) 사용법 및 예제
Deque(덱/데크) 덱은 Double-Ended Queue의 줄임말로 큐의 양쪽에 데이터를 넣고 뺄 수 있는 형태의 자료구조를 의미한다. 하나의 자료구조에 큐(Queue)와 스택(Stack)을 합쳐 놓은 형태라고 생각하면 된다.
hbase.tistory.com