[알고리즘] 백준 10828 "스택"

성준영·2022년 8월 7일
0
let fs = require("fs");

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

input.splice(0, 1);

let stack = [];
let result = [];

input.forEach((data) => {
  if (data.length > 3 && data.slice(0, 4) === "push") {
    let [_, value] = data.split(" ");
    stack.push(value);
  } else if (data.slice(0, 3) === "pop") {
    if (stack.length === 0) {
      result.push(-1);
    } else {
      result.push(stack.pop());
    }
  } else if (data.slice(0, 4) === "size") {
    result.push(stack.length);
  } else if (data.length >= 5 && data.slice(0, 5) === "empty") {
    if (stack.length === 0) {
      result.push(1);
    } else {
      result.push(0);
    }
  } else if (data.slice(0, 3) === "top") {
    if (stack.length === 0) {
      result.push(-1);
    } else {
      result.push(stack[stack.length - 1]);
    }
  }
});

console.log(result.join("\n")); // console.log()는 시간이 오래 걸리기 때문에 한 번에 출력할 것
profile
기록해버리기

0개의 댓글

관련 채용 정보