🤜 코테

백준 문제 풀이 : 스택 (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'));

 

링크

https://www.acmicpc.net/problem/10828