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() 이라는 차이가 있다.