PUSH
, 데이터를 꺼내는 것을 POP
이라고 한다.
https://www.tutorialspoint.com/data_structures_algorithms/stack_algorithm.htm
Stack Overflow
: 스택이 가득 차 있는데 데이터를 넣으려고 할 때 발생한다. Stack Underflow
: 빈 스택에서 데이터를 꺼내려고 하는 경우에 발생한다. 스택의 특징인 후입선출(LIFO)을 활용하여 여러 분야에서 활용할 수 있다.
💡 백트래킹(backtracking)이란? : 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법
💡 https://www.acmicpc.net/problem/1874 스택으로 수열 만들기
enqueue
, 데이터를 꺼내는 것을 dequeue
라고 한다.Queue는 주로 데이터가 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용한다.
Queue
는 자바스크립트의 내장 메서드인 shift()
로도 비슷한 기능을 수행할 수 있다. shift()
메서드는 배열의 가장 앞의 원소부터 제거하기 때문이다. 하지만 이 경우 나머지 배열의 원소들을 매번 한 칸씩 앞으로 당겨주는 재정렬을 수행하기 때문에 O(n)의 시간 복잡도를 가지게 되어 위 예제같은 경우에는 적합하지 않다. 따라서 JS의 Class를 이용하여 Linked List
를 활용한Queue
를 구현하여야 한다.
https://velog.io/@longroadhome/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-JS%EB%A1%9C-%EA%B5%AC%ED%98%84%ED%95%98%EB%8A%94-.%ED%81%90-Queue
(JS로 구현하는 큐 (Queue)
https://ghost4551.tistory.com/133 (Queue 구현 및 시간 복잡도)