Home 백준 큐 문제 - 01
Post
X

백준 큐 문제 - 01

10845번 문제 - 큐

백준 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"));
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.