Study/알고리즘

[백준] 18258 큐2 JavaScript

ujam 2021. 9. 13. 23:02
728x90
반응형

 

const { stdin } = require('process');
const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', (line) => {
    const input = line.split(',');
    let queue = [];

    counter = Number(input[0]);

    for (let i = 0; i < counter + 1; i++) {
        const command = input[i].split(' ');
        if (command.length == 1) {
            
            if (command[0] === 'pop') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[0]);
                    // console.log("qqq",queue[0]);
                    // console.log("www",queue[1]);
                    queue.shift();
                }
            }
            if (command[0] === 'size') {
                console.log(queue.length);
            }
            if (command[0] === 'empty') {
                if (queue.length == 0) {
                    console.log(1);
                } else {
                    console.log(0);
                }
            }
            if (command[0] === 'front') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[0]);
                }
            }
            if (command[0] === 'back') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[queue.length - 1]);
                }
            }
        } else {
            x = command[1];
            queue.push(x);
        }
    }
    rl.close();
}).on('close', () => {
    process.exit();
})

위 코드로는 로컬 환경에서 확인했습니다.

 

 

 

 

 

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

    let queue = [];

    counter = Number(input[0]);

    for (let i = 0; i < counter + 1; i++) {
        const command = input[i].split(' ');
        if (command.length == 1) {
            
            if (command[0] === 'pop') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[0]);
                    // console.log("qqq",queue[0]);
                    // console.log("www",queue[1]);
                    queue.shift();
                }
            }
            if (command[0] === 'size') {
                console.log(queue.length);
            }
            if (command[0] === 'empty') {
                if (queue.length == 0) {
                    console.log(1);
                } else {
                    console.log(0);
                }
            }
            if (command[0] === 'front') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[0]);
                }
            }
            if (command[0] === 'back') {
                if (queue.length == 0) {
                    console.log(-1);
                } else {
                    console.log(queue[queue.length - 1]);
                }
            }
        } else {
            x = command[1];
            queue.push(x);
        }
    }

위 코드로 백준 알고리즘 제출했습니다.

 

 

 

 

 

 

항상 부족한 부분이나 피드백할 부분을 댓글로 남겨주시면 적극적으로 수용하여 수정하겠습니다.

728x90
반응형