문제 : boj18258
문제에 제시된 대로 구현만 잘 하면 되는 문제이다. 큐를 직접 구현해봐도 되고, 자바 혹은 다른 언어에서 제공하는 기본 큐를 사용해서 짜도 된다. '만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다.' 와 같은 세세한 조건들만 잘 처리해주면 쉽게 통과할 수 있다.
코드 : github
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
private static final int PUSH = 1;
private static final int POP = 2;
private static final int SIZE = 3;
private static final int EMPTY = 4;
private static final int FRONT = 5;
private static final int BACK = 6;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Queue<Integer> q = new LinkedList<Integer>();
int n = Integer.parseInt(br.readLine()); // # of TC.
int back = 0; // last integer tmp.
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
switch(getOrder(st.nextToken())) {
case PUSH :
int tmp = Integer.parseInt(st.nextToken());
q.offer(tmp);
back = tmp;
break;
case POP :
if (!q.isEmpty())
bw.write(q.poll() + "\n");
else
bw.write("-1\n");
break;
case SIZE :
bw.write(q.size() + "\n");
break;
case EMPTY :
if (q.isEmpty())
bw.write("1\n");
else
bw.write("0\n");
break;
case FRONT :
if (!q.isEmpty())
bw.write(q.peek() + "\n");
else
bw.write("-1\n");
break;
case BACK :
if (!q.isEmpty())
bw.write(back + "\n");
else
bw.write("-1\n");
break;
default :
// TEST CASE ERROR
}
}
bw.flush();
br.close();
bw.close();
}
private static int getOrder(String s) {
if (s.equals("push"))
return PUSH;
if (s.equals("pop"))
return POP;
if (s.equals("size"))
return SIZE;
if (s.equals("empty"))
return EMPTY;
if (s.equals("front"))
return FRONT;
if (s.equals("back"))
return BACK;
return -1;
}
}
'PS > BOJ' 카테고리의 다른 글
백준 11637 자바 - 인기 투표 (BOJ 11637 JAVA) (0) | 2022.03.17 |
---|---|
백준 5568 자바 - 카드 놓기 (BOJ 5568 JAVA) (0) | 2022.03.16 |
백준 3022 자바 - PRASE (BOJ 3022 JAVA) (0) | 2022.03.14 |
백준 6550 자바 - 부분 문자열 (BOJ 6550 JAVA) (0) | 2022.03.13 |
백준 6186 자바 - Best Grass (BOJ 6186 JAVA) (0) | 2022.03.12 |
댓글