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
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Queue {
static int[] queue = new int[10001];
static int front = 0;
static int back;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//커맨드 반복 횟수
int cmdCnt = Integer.parseInt(br.readLine());
//초기값을 모두 -1로 넣는다. 값이 없으면 바로 -1 출력하도록
Arrays.fill(queue, -1);
while(cmdCnt-- > 0) {
String str = br.readLine();
if(str.contains("push")) {
String[] strArr = str.split(" ");
int input = Integer.parseInt(strArr[1]);
//가장 뒤에 값을 넣고, 다음에 값을 넣기 위해 back을 1 증가
queue[back++] = input;
} else {
switch(str) {
case "pop":
//늘 가장 앞의 값을 출력
System.out.println(queue[front]);
//앞의 값을 pop하면 그 뒤의 값으로 덮어씌운다
for(int i = front + 1; i <= back; i++) {
queue[i - 1] = queue[i];
}
//가장 뒤 값을 가리키는 인덱스가 0보다 크면 -1로 초기화하여 이전 값을 지운다
if(back > 0) queue[--back] = -1;
break;
case "size":
System.out.println(back);
break;
case "empty":
if(back == 0) {
System.out.println("1");
} else {
System.out.println("0");
}
break;
case "front":
System.out.println(queue[front]);
break;
case "back":
//가장 앞의 인덱스와 가장 뒤의 인덱스가 같으면 0번 인덱스 출력
if(front == back) {
System.out.println(queue[front]);
} else {
//front와 back이 다른 경우,
//push에서 back++에서 input대입 후에 back이 +1된 상태이므로 -1해야 정확한 위치가 된다
System.out.println(queue[back - 1]);
}
break;
}
}
}
}
}
| cs |
[10845] 큐
피드 구독하기:
댓글 (Atom)
-
자료 종류와 표현 자료의 표현 수치 자료 정수 표현(고정소수점 수의 표현) 10진 연산 팩(packed) 연산 언팩(unpacked) 연산 2진 연산 부호화 크기 1의 보수 2의 보...
-
a. 정의 i. 데이터 타입을 추상적*(수학적)으로 정의한 것 1) 추상 = 어떤 물체나 현상의 중요한 특징만을 추출하여 표현하는 것 2) 가장 중요한 추상의 타입 i) 부분으로 나누기( Has-A abstraction) → 요소(c...
-
//코드 참조 사이트: http://javannspring.tistory.com/174 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ...
댓글 없음:
댓글 쓰기