TIL 4 | 자료구조 - 스택과 큐

grighth12·2021년 8월 9일
2

TIL

목록 보기
4/15
post-thumbnail

스택

  • 스택의 대표적인 예 - 스택 메모리 : 함수 호출 시 생성되는 지역변수, 매개변수가 저장되는 메모리 영역이다.

  • 스택은 배열과 연결리스트로 표현할 수 있다. 자바스크립트의 Array는 엄밀히 따지면 배열이라고는 할 수 없어서 컴파일 언어보다는 성능이 떨어질 수 있다.


  • 코딩 테스트에서 큐를 활용해야 한다면, 배열을 사용하여 간단히 구현하는 것을 추천한다. 단, rear(맨 뒤 인덱스를 저장하는 변수)와 front(맨 앞 인덱스를 저장하는 변수)가 무한히 커질 수 있다는 점을 고려해서 사용하자.

코딩 테스트에서 큐를 사용하는 문제에 자바스크립트의 Array를 사용할 경우, shift()연산이 O(n)이 걸린다는 것을 유념해야 한다. 문제 입력이 1000 이상이 될 경우 성능에 영향을 끼칠 수 있다고 한다. 이런 경우에는 연결 리스트나 배열을 통해 Queue를 구현해 사용할 것을 추천한다.

큐를 배열로 구현하는 과정에서 새롭게 delete keyword를 알게 되었는데 length를 건드리는 건가하고 헷갈렸다. 실제 확인해보니 쉽게 말하면 배열의 원소를 undefiend(empty)로 할당하고 length는 건드리지 않는 기능이었다.

const arr = [1, 2, 3, 4];
delete arr[0];
console.log(arr) // [undefined, 2, 3, 4]

참고 자료 및 강의

프로그래머스 프론트엔드 데브코스 Day3 [강의] 스택, 큐
profile
데굴데굴 굴러가고 있습니다

0개의 댓글