Koala - 9기/기초 알고리즘 스터디

[백준/node.js]10773번 제로

알 수 없는 사용자 2023. 1. 15. 22:49

10773번: 제로 (acmicpc.net)

 

10773번: 제로

첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경

www.acmicpc.net

 

코드


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

const caseCount = Number(input[0]);
const stack =  [];

for (let i = 1; i <= caseCount; i += 1) {
  const value = Number(input[i]);

  if (value === 0) {
    stack.pop();
  } else {
    stack.push(value);
  }
}

let result = 0;

for (let i = 0; i < stack.length; i += 1) {
  result += stack[i];
}

console.log(result);

 

문제 해결


reduce 메소드를 이용하여 문제에 접근하려 했지만

reduce 메소드는 빈 배열에는 사용할 수 없다는 것을 알게 되었다.

그래서 stack의 간단한 특성을 이용하여 문제를 해결하였다.