문제: https://www.acmicpc.net/problem/28279
28279번: 덱 2
첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.
www.acmicpc.net
1. 코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
StringBuilder sb = new StringBuilder();
Deque <Integer> d = new ArrayDeque<>();
while(N-- > 0) {
int cmd = sc.nextInt();
switch(cmd) {
case 1: d.addFirst(sc.nextInt()); break;
case 2: d.addLast(sc.nextInt()); break;
case 3:
if(d.isEmpty())
sb.append(-1).append('\n');
else
sb.append(d.removeFirst()).append('\n');
break;
case 4:
if(d.isEmpty())
sb.append(-1).append('\n');
else
sb.append(d.removeLast()).append('\n');
break;
case 5: sb.append(d.size()).append('\n'); break;
case 6:
if(d.isEmpty())
sb.append(1).append('\n');
else
sb.append(0).append('\n');
break;
case 7:
if(d.isEmpty())
sb.append(-1).append('\n');
else
sb.append(d.peekFirst()).append('\n');
break;
case 8:
if(d.isEmpty())
sb.append(-1).append('\n');
else
sb.append(d.peekLast()).append('\n');
}
}
System.out.println(sb.toString());
}
}
2. 설명
Deque를 적절히 활용하여 출력 내용은 StringBuilder에 저장 후 한번에 출력합니다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 - 24511번: queuestack [Java] (0) | 2023.10.02 |
---|---|
백준 알고리즘 - 2346번: 풍선 터뜨리기 [Java] (0) | 2023.09.30 |
백준 알고리즘 - 12789번: 도키도키 간식드리미 [Java] (0) | 2023.09.27 |
백준 알고리즘 - 28278번: 스택 2 [Java] (0) | 2023.09.26 |
백준 알고리즘 - 13909번: 창문 닫기 [Java] (0) | 2023.09.25 |