🤜 코테
백준 문제 풀이 : 스택 (10828)
wnwlals13
2024. 5. 8. 16:56
나의 문제풀이 방법
주어지는 명령어가 맞다면 해당 명령어에 맞는 수식 진행하도록 구성해야겠다고 생각함.
문제는 어렵지 않다고 생각함. 각 명령어에 맞게 코드를 짜주면 되었기 때문!
다만, 생각하지 못했던 '시간초과' 에러가 떠서 바로 구글링해봤음. 신기하게도 다른 개발자 분의 답변을 확인해보니 console.log(); 수행 시에도 시간이 많이 소요되어 console.log()는 가능한 한번만 사용하는 게 좋다고 함!
앞으로 console.log()를 쓰지 않고 배열에 답변을 쌓는 방법으로 구현해야겠다
문제 풀이
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const n = Number(input[0]);
const stack = [];
const answer = []; //답
for ( var i=1; i<=n ; i++) {
if(input[i].indexOf("push")>-1) {
let item = input[i].split(' ')[1];
stack.push(item);
}
if(input[i] == 'top') {
answer.push(stack.length > 0 ? stack[stack.length-1] : -1);
}
if(input[i] == 'size') {
answer.push(stack.length);
}
if(input[i] == 'empty') {
answer.push(stack.length > 0 ? 0 : 1);
}
if(input[i] == 'pop') {
answer.push(stack.length > 0 ? stack.pop() : -1);
}
}
console.log(answer.join('\n'));