[백준 | Javascript] 10866

박기영·2022년 9월 1일
0

백준

목록 보기
96/127

기초 알고리즘 1/2. 200 - 자료 구조 1
10866번. 덱

문제

10866번 문제 링크

solution

const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

const iter = input.shift();

let deque = [];

let ans = [];

for(let i = 0; i < iter; i++){
    let [cmd, num] = input[i].split(" ");
    
    if(cmd === "push_front"){
        deque.unshift(num);
    } else if(cmd === "push_back") {
        deque.push(num);
    } else if(cmd === "pop_front"){
        if(deque.length > 0){
            ans.push(deque.shift());
        } else {
            ans.push(-1);
        }
    } else if(cmd === "pop_back"){
        if(deque.length > 0){
            ans.push(deque.pop());
        } else {
            ans.push(-1);
        }
    } else if(cmd === "size"){
        ans.push(deque.length);
    } else if(cmd === "empty"){
        if(deque.length > 0){
            ans.push(0);
        } else {
            ans.push(1);
        }
    } else if(cmd === "front"){
        if(deque.length > 0){
            ans.push(deque[0]);            
        } else {
            ans.push(-1);
        }
    } else if(cmd === "back"){
        if(deque.length > 0){
            ans.push(deque[deque.length - 1]);
        } else {
            ans.push(-1);
        }
    }
}

console.log(ans.join("\n"));

명령어에 따라 분기처리를 하면 되는 아주 간단한 문제이다.
시간 초과를 피하기위해서 ans에 답을 담아서 한번에 문자열로 출력을 했다.

profile
나를 믿는 사람들을, 실망시키지 않도록

0개의 댓글