🔑 알고리즘/백준 JS
[백준] node.js/ 10866 덱
Tamii
2021. 10. 18. 09:30
반응형
내 풀이
const fs = require('fs');
let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n');
input.shift();
let queue = [];
const cmdObj = {
push_back: (x) => {
queue.push(x);
return '';
},
push_front: (x) => {
queue.unshift(x);
return '';
},
pop_front: () => queue.shift() || -1,
pop_back: () => queue.pop() || -1,
size: () => queue.length,
empty: () => (queue[0] ? 0 : 1),
front: () => queue[0] || -1,
back: () => queue[queue.length - 1] || -1,
};
const result = input.reduce(
(acc, v) =>
acc +
(cmdObj[v]
? `${cmdObj[v]()}\n`
: v.split(' ')[0] === 'push_back'
? cmdObj.push_back(v.split(' ')[1])
: cmdObj.push_front(v.split(' ')[1])),
''
);
console.log(result);
스택 풀이와 비슷한 방법으로 명령객체를 만들었다.
다만 차이점은 push가 front 와 back으로 나뉘었기 때문에 reduce 시 삼항연산자가 중첩되었다는점...