728x90
문제
풀이
처음에는 Que로 제목과 같이 Que를 사용하여 문제를 풀었다. 하지만 LinkedList로는 런타임 오류가 떳고 그에 따라 Deque를 사용하여 ArrayDeque를 사용하여 문제를 풀었다. 첫 번째 코드는 Que로 풀었던 코드이고 두 번째 코드는 Deque를 사용하여 풀었던 풀이이다.
첫번째 Que를 사용한 실패한 풀이:
import java.util.*;
public class Que1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Queue<Integer> queue = new LinkedList<>();
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String command = sc.next();
switch (command) {
case "push":
int x = sc.nextInt();
queue.add(x);
break;
case "pop":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(queue.poll());
}
break;
case "size":
System.out.println(queue.size());
break;
case "empty":
if (queue.isEmpty()) {
System.out.println(1);
} else {
System.out.println(0);
}
break;
case "front":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(queue.peek());
}
break;
case "back":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(((LinkedList<Integer>) queue).getLast());
}
break;
}
}
}
}
두 번째 Deque를 사용한 성한 풀이:
import java.util.*;
public class Que1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Deque<Integer> queue = new ArrayDeque<>();
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String command = sc.next();
switch (command) {
case "push":
int x = sc.nextInt();
queue.add(x); // 또는 queue.addLast(x);
break;
case "pop":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(queue.poll());
}
break;
case "size":
System.out.println(queue.size());
break;
case "empty":
if (queue.isEmpty()) {
System.out.println(1);
} else {
System.out.println(0);
}
break;
case "front":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(queue.peek());
}
break;
case "back":
if (queue.isEmpty()) {
System.out.println(-1);
} else {
System.out.println(queue.peekLast());
}
break;
}
}
sc.close();
}
}
728x90
'백준' 카테고리의 다른 글
백준 10866 - Java (0) | 2024.08.24 |
---|---|
백준 1158 - Java (0) | 2024.08.24 |
백준 1406 - java (0) | 2024.08.13 |
백준 1874 - java (0) | 2024.08.13 |
백준 9012 - java (0) | 2024.08.13 |