10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
접근 : 스택, 구현
Javascript를 활용해서 스택을 함수형으로 구현하는 연습
Javascript
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
let stack = [];
let answer = [];
function solution() {
let n = +input.shift();
for (let i = 0; i < n; i++) {
let cmd = input.shift().split(" ");
switch (cmd[0]) {
case "push":
stackPush(+cmd[1]);
break;
case "pop":
stackPop();
break;
case "size":
stackSize();
break;
case "empty":
stackEmpty();
break;
default:
stackTop();
break;
}
}
console.log(answer.join("\n"));
}
function stackPush(num) {
stack.push(num);
}
function stackPop() {
if (stack.length === 0) answer.push(-1);
else {
let num = stack.pop();
answer.push(num);
}
}
function stackSize() {
answer.push(stack.length);
}
function stackEmpty() {
if (stack.length === 0) {
answer.push(1);
} else {
answer.push(0);
}
}
function stackTop() {
if (stack.length === 0) answer.push(-1);
else {
let num = stack[stack.length - 1];
answer.push(num);
}
}
solution();
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 10866 덱 (Javascript) (0) | 2022.06.30 |
---|---|
[baekjoon] 10845 큐 (Javascript) (0) | 2022.06.30 |
[baekjoon] 1697 숨바꼭질 (Javascript,C++) (0) | 2022.06.29 |
[baekjoon] 4179 불! (C++,Javascript) (0) | 2022.06.29 |
[baekjoon] 7576 토마토 (C++,Javascript) (0) | 2022.06.29 |