스택의 대표적인 예 - 스택 메모리 : 함수 호출 시 생성되는 지역변수, 매개변수가 저장되는 메모리 영역이다.
스택은 배열과 연결리스트로 표현할 수 있다. 자바스크립트의 Array는 엄밀히 따지면 배열이라고는 할 수 없어서 컴파일 언어보다는 성능이 떨어질 수 있다.
rear(맨 뒤 인덱스를 저장하는 변수)와 front(맨 앞 인덱스를 저장하는 변수)가 무한히 커질 수 있다는 점을 고려해서 사용하자.코딩 테스트에서 큐를 사용하는 문제에 자바스크립트의
Array를 사용할 경우,shift()연산이O(n)이 걸린다는 것을 유념해야 한다. 문제 입력이 1000 이상이 될 경우 성능에 영향을 끼칠 수 있다고 한다. 이런 경우에는 연결 리스트나 배열을 통해 Queue를 구현해 사용할 것을 추천한다.
큐를 배열로 구현하는 과정에서 새롭게
deletekeyword를 알게 되었는데length를 건드리는 건가하고 헷갈렸다. 실제 확인해보니 쉽게 말하면 배열의 원소를undefiend(empty)로 할당하고 length는 건드리지 않는 기능이었다.const arr = [1, 2, 3, 4]; delete arr[0]; console.log(arr) // [undefined, 2, 3, 4]
프로그래머스 프론트엔드 데브코스 Day3 [강의] 스택, 큐