스택 > feat.BOJ 10773

니나노개발생활·2021년 6월 17일
0
post-thumbnail

스택

  • 데이터를 제한적으로 접근
  • LIFO(Last-In, First-Out) / FILO(First-In, Last-Out)
  • 문이 하나인 건물에 들어가서 처음 들어간 사람이 제일 마지막에 나온다.

push() : 데이터를 스택에 넣기 > 데이터를 1,2,3,4,5,6의 순서로 넣었다면
pop() : 데이터를 스택에서 꺼내기 > 6,5,4,3,2,1의 순서로 꺼내오는 것!
size() : 스택에 들어있는 정수의 개수를 출력한다.
empty() : 스택이 빈 경우 true를, 그렇지 않은 경우 false를 반환한다
top() : 스택의 가장 위에 있는 정수를 출력한다.
peek() : 마지막에 저장된 요소를 반환하되 삭제하지 않는다.

  • 스택은 단순하고 빠른 성능을 위해 사용되므로 보통 배열 구조를 활용해 구현하는 것이 일반적
  • 단점 : 최대 갯수를 미리 정해야한다(파이썬에서는 1000번까지만 호출 가능), 저장 공간의 낭비가 발생할 수 있다(미리 최대 갯수만큼 저장 공간을 확보해야한다.)

BOJ 알고리즘 10773번

const stdin = ['10','1','3','5','4','0','0','7','0','0','6'];

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

const input = Number(stdin[0]);

let arr = [];

for (let i=1;i<=input;i++) {
    let num = Number(stdin[i]);
    num !==0 ? arr.push(num) : arr.pop();
}

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

console.log(result)
profile
깃헙으로 이사중..

0개의 댓글