티스토리 뷰

https://www.acmicpc.net/problem/18258

 

18258번: 큐 2

첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지

www.acmicpc.net

const fs = require('fs');
const [n,...arr] = fs.readFileSync("./dev/stdin").toString().trim().split("\n");


class Node{
    constructor(item){
      this.item = item;
      this.next = null;
    }
  }
  
  class Queue{
    constructor(){
      this.head = null;
      this.tail = null;
      this.length = 0;
    }
  
    push(item){
      const node = new Node(item)
      if(this.head===null){
        this.head= node;
        this.head.next = null;
      }else{
        this.tail.next = node;
      }
  
      this.tail = node;
      this.length +=1;
    }
  
    pop(){
        if(this.empty()==1) return -1
      const popItem = this.head;
      this.head = this.head.next;
      this.length -=1;
      return popItem.item;
    }
  
    size(){
      return this.length;
    }
  
    empty(){
      if(this.length==0){
        return 1;
      }else{
        return 0;
      }
    }
  
    front(){
      if(this.empty()==1) return -1;
      return this.head.item; 
    }
  
    back(){
      if(this.empty()==1) return -1;
      return this.tail.item; 
    }
  }
  




let answer = [];
let queue = new Queue(); 
const command = arr.map(v=>v.split(' '));
command.forEach(v=>{
    switch(v[0]){
        case 'push':
            queue.push(v[1])
            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'))
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함