자료구조 & 알고리즘

큐란?먼저 들어온 데이터가 먼저 나가는 FIFO(First In First Out) 구조이다. 큐는 줄을 서는 것과 비슷하게 생각하면 된다. 먼저 줄 서 있는 사람이 가장 먼저 나가고 새로운 사람들 줄의 맨 끝에 선다고 생각하면 됩니다.메소드Enqueue(추가): 큐의 끝에 데이터 추가Dequeue(제거): 큐의 맨 앞에 데이터를 제거하고 반환Peek(확인): 큐의 맨 앞 데이터를 반환isEmpty(비어 있는지 확인): 큐가 비어있는지 확인Size(크기): 현재 큐에 있는 요소 반환시간 복잡도Enqueue: 배열의 끝에 삽입 O(1)Dequeue: 배열의 첫번째 요소를 제거하면 남은 요소들을 한칸씩 이동시켜야 하기 때문에 O(n) *큐를 직접 구현할 경우 O(1)Peek: 배열의 첫번째 요소 O(1)is..
스택이란?어떠한 데이터의 구체적인 구현 방식은 생략하고 데이터의 추상적인 형태와 그 데이터를 다루는 방법만 정해놓은 것을 가지고 ADT (Abstract Data Type) 또는 추상 자료형이라고 한다. 그 중 스택이란 고전적인 자료구조 중 하나이다. 스택은 자바스크립트에 내장되어 있진 않지만 배열과 내장함수들을 이용하여 스택을 흉내낼 수 있다.LIFO (Last In First out) 원칙 (나중에 들어온 데이터가 먼저 나감, 드럼통 안에 물건을 담는 느낌)함수 실행 콘텍스들이 쌓이는 Call Stack, 브라우저 방문 기록이 쌓이는 History Stack이 대표적여러 작업을 연달아 수행하면서 이전의 작업 내용을 저장해야 할 때 자주 사용스택이 비어있을 때 pop 을 시도 -> stack under..