https://www.acmicpc.net/problem/10828
1. 문제 설명
정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.
명령은 총 다섯 가지이다.
- push X: 정수 X를 스택에 넣는 연산이다.
- pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- size: 스택에 들어있는 정수의 개수를 출력한다.
- empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
- top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
2. 입/출력
3. 문제 풀이
const [n, ...arr] = require("fs")
.readFileSync("./input.txt")
.toString()
.trim()
.split(/\r\n/);
/* 제출할 때 */
// const [n, ...arr] = require("fs")
// .readFileSync("/dev/stdin")
// .toString()
// .trim()
// .split(/\n/);
function solution(commands) {
const answer = [];
const stack = []; // 스택 생성
// 1) 입력 받은 값 만큼 반복한다.
commands.forEach((item) => {
const [command, val] = item.split(" ");
// 2) 명령어에 따라 출려한다.
switch (command) {
case "push":
stack.push(val);
break;
case "top":
answer.push(stack.length ? stack[stack.length - 1] : -1);
break;
case "size":
answer.push(stack.length);
break;
case "empty":
answer.push(stack.length ? 0 : 1);
break;
case "pop":
answer.push(stack.length ? stack.pop() : -1);
break;
}
});
console.log(answer.join("\n"));
}
solution(arr);
반응형
'Algorithm' 카테고리의 다른 글
[백준 / NodeJS] 9012번 괄호 (0) | 2023.03.27 |
---|---|
[백준 / NodeJS] 1874번 스택 수열 (0) | 2023.03.26 |
[프로그래머스/JavaScript] Lv.2 리코쳇 로봇 (0) | 2023.03.22 |
[프로그래머스/JavaScript] Lv.2 당구 연습 (0) | 2023.03.20 |
[프로그래머스/JavaScript] Lv.2 미로 탈출 (2) | 2023.03.17 |