10845번 문제 - 큐
풀이
console.log
의 호출이 늘어날 수록 시간이 급격하게 증가 => 시간초과
출력은 변수에 담아서
join()
해서 출력하자.배열을 이용한 큐 구현
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
const filePath = process.platform !== "linux" ? "./test.txt" : "dev/stdin";
let input = require("fs").readFileSync(filePath).toString().trim().split("\n");
let n = input.shift();
class Queue {
constructor() {
this._arr = [];
}
push(item) {
this._arr.push(item);
}
pop() {
return this.size() ? this._arr.shift() : -1;
}
size() {
return this._arr.length;
}
empty() {
return this.size() ? 0 : 1;
}
front() {
return this.size() ? this._arr[0] : -1;
}
back() {
return this.size() ? this._arr[this._arr.length - 1] : -1;
}
}
let queue = new Queue();
let answer = [];
for (let x of input) {
let [order, data] = x.trim().split(" ");
switch (order) {
case "push":
queue.push(data);
break;
case "pop":
answer.push(queue.pop());
break;
case "size":
answer.push(queue.size());
break;
case "empty":
answer.push(queue.empty());
break;
case "front":
answer.push(queue.front());
break;
case "back":
answer.push(queue.back());
break;
}
}
console.log(answer.join("\n"));