백준-Node.js-10845, 큐

송철진·2023년 2월 26일
0

백준-Node.js

목록 보기
38/71
post-custom-banner

풀이

const fs = require('fs');
const input = fs.readFileSync("/dev/stdin").toString().trim()
                .split('\n').slice(1)

const solution = input => {
  let queue = []
  let obj = {
    'push': (val) => queue.push(val),
    'front':() => queue[0] || -1, 
    'back': () => queue[queue.length-1] || -1,
    'pop': () => queue.shift() || -1,
    'size': () => queue.length,
    'empty': () => queue.length === 0 ? 1 : 0
  }
  let result = []
  
  input.forEach(el => {
    if(el.startsWith('pu')){
      obj['push']( el.split(' ')[1] )
    }else{
      result.push( obj[el]() )
    }
  })
  return result.join('\n') 
}
console.log(solution(input))

구현 방식은 BOJ 10828 - 스택 과 거의 동일하다
단, 'pop'을 실행 시
스택은 first in last out 방식이므로 array.pop(),
큐는 first in first out 방식이므로 array.shift() 이라는 차이가 있다.

profile
검색하고 기록하며 학습하는 백엔드 개발자
post-custom-banner

0개의 댓글