반응형
내 풀이
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 시 삼항연산자가 중첩되었다는점...
'🔑 알고리즘 > 백준 JS' 카테고리의 다른 글
[백준] node.js/ 15649 N과 M 1 (0) | 2021.10.20 |
---|---|
[백준] node.js/ 1302 베스트셀러 (0) | 2021.10.19 |
[백준] node.js/ 10828 스택 (0) | 2021.10.15 |
[백준] node.js/ 3986 좋은 단어 (0) | 2021.10.14 |
[백준] node.js/ 2164 카드2 (0) | 2021.10.13 |
댓글