0%

[백준/10845] 큐

Baekjoon Online Judge - 10845

Review

  • 제출하면서 맞왜틀이 된 문제.
  • 한 시간동안 헤매서 답을 풀었다.
  • 이유는 출력시 자료형이 달라서 그런 거였다. object로 return했는데 자꾸 틀리는 바람에 int로 죄다 바꿔서 출력하니까 성공.
  • 몰랐던 나는 예외처리 잘못한 줄 알고 엉뚱한 거 계속 고치고 있었다. 진짜 에바…

Code (JAVA)

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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import java.io.*;

public class Main {
public static void main(String args[]) throws IOException {

BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();

int n = Integer.parseInt(bf.readLine());
Queue queue = new Queue(n);

while(n-->0) {
String[] input = bf.readLine().split(" ");

if(input[0].equals("push")) {
queue.push(Integer.parseInt(input[1]));
} else if(input[0].equals("pop")) {
sb.append(queue.pop() + "\n");
} else if(input[0].equals("size")) {
sb.append(queue.size() + "\n");
} else if(input[0].equals("empty")) {
sb.append(queue.empty() + "\n");
} else if(input[0].equals("front")) {
sb.append(queue.front() + "\n");
} else if(input[0].equals("back")) {
sb.append(queue.back() + "\n");
}
}
System.out.println(sb);
}

static class Queue {
private int[] array;
private int rear;
private int item;

public Queue(int size) {
rear = -1;
array = new int[size];
}

public void push(int item) {
array[++rear] = item;
}

public int pop() {
if (rear==-1) {
return -1;
} else {
item = array[0];
for (int i = 0; i < rear; i++) {
array[i] = array[i+1];
}
rear--;
return item;
}
}

public int size() {
return rear+1;
}

public int empty() {
if(rear==-1) {
return 1;
} else {
return 0;
}
}

public int front() {
if(rear==-1) {
return -1;
}
return array[0];
}

public int back() {
if(rear==-1) {
return -1;
}
return array[rear];
}
}
}