티스토리 뷰

덱 문제. 문제는 쉽지만 이전 큐 문제처럼 메모리나 시간 문제가 클 것이다.
큐를 구현할때처럼 두개의 stack으로 해결해보려는데 전처럼 깔끔하게 되지가 않을 것 같아서 일단 배열 하나로 구현해보고, 메모리나 시간초과가 나면 다른 방식을 고민해보기로 했다.
function solution(inputArray) {
let count = +inputArray[0];
let dequeue = [];
let resultArray = [];
for (let i = 1; i < count + 1; i++) {
const commandLine = inputArray[i].split(" ");
switch (commandLine[0]) {
case "push_front":
dequeue.splice(0, 0, commandLine[1]);
break;
case "push_back":
dequeue.push(commandLine[1]);
break;
case "pop_front":
if (dequeue.length === 0) {
resultArray.push(-1);
} else {
resultArray.push(dequeue[0]);
dequeue.splice(0, 1);
}
break;
case "pop_back":
resultArray.push(dequeue.length === 0 ? -1 : dequeue.pop());
break;
case "size":
resultArray.push(dequeue.length);
break;
case "empty":
resultArray.push(dequeue.length === 0 ? 1 : 0);
break;
case "front":
resultArray.push(dequeue.length === 0 ? -1 : dequeue[0]);
break;
case "back":
resultArray.push(
dequeue.length === 0 ? -1 : dequeue[dequeue.length - 1]
);
break;
default:
console.log(`maybe string is broken again`);
break;
}
}
console.log(resultArray.join("\n"));
}
잊고지냈던 어쩌고?응:아니 문법이 탁 떠올라서 썼다. 저거 뭐라고 하는지 모르겠네

되긴 했다.
찾아보니 딱히 기발한 방법은 없는듯.
'■ 알고리즘 > ◻ 백준' 카테고리의 다른 글
| [Python]10799번: 쇠막대기 (0) | 2022.08.12 |
|---|---|
| [Nodejs]17413번: 단어 뒤집기 2 (0) | 2022.08.03 |
| [Nodejs]1158번: 요세푸스 문제 (0) | 2022.08.03 |
| [Nodejs]10845번: 큐 (0) | 2022.08.02 |
| [Nodejs]1406번: 에디터 (0) | 2022.08.02 |