티스토리 뷰

문자열 처리 중 다시 발생한 \r 문제. split(\r\n)으로 다시 바꿔준다..

덱 문제. 문제는 쉽지만 이전 큐 문제처럼 메모리나 시간 문제가 클 것이다.

큐를 구현할때처럼 두개의 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함