
먼저 들어온 데이터가 나중에 나가는 자료구조
구현용 백준 기본 문제 : 10828번
const array = require('fs').readFileSync('/dev/stdin').toString().split('\n');
array.shift();
const stack = [];
const fun = {
pop: () => stack.pop() || -1,
size: () => stack.length,
empty: () => stack[0] ? 0 : 1,
top: () => stack[stack.length - 1] || -1,
push: (item) => {
stack.push(item.split(" ")[1]);
return '';
}
}
const result = array.reduce((acc, v) =>
acc + (fun[v] ? `${fun[v]()}\n` : fun.push(v)), '');
console.log(result);
먼저 삽입된 데이터가 먼저 추출되는 자료구조
구현용 백준 기본 문제 : 10845번
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const queue = [];
const answer = [];
const len = Number(input[0]);
for(let i=1; i<=len; i++){
let cmd = input[i].split(' ');
switch(cmd[0]) {
case 'push':
queue.push(cmd[1]);
break;
case 'pop':
answer.push(queue.shift() || -1);
break;
case 'size':
answer.push(queue.length);
break;
case 'empty':
answer.push(queue[0] ? 0 : 1);
break;
case 'front':
answer.push(queue[0] || -1);
break;
case 'back':
answer.push(queue[queue.length-1] || -1);
break;
}
}
console.log(answer.join('\n'));
참고 자료
글 재미있게 봤습니다.