bass
article thumbnail
JavaScript / shift 안쓰고 BFS 구현하기
JS 2023. 1. 29. 16:29

JS에서의 큐? 자바스크립트의 리스트는 큐의 디큐(dequeue) 역할을 하는 shift() 함수가 존재하기는 합니다만, 시간 복잡도가 O(n)입니다. 사실상 시간적으로는 디큐의 역할을 하지 못하는 것입니다. index를 활용해서 큐의 시작점을 바꿀 수 있지만, 이 또한 공간적으로 디큐의 역할을 하지 못합니다. 그렇다고 연결리스트로 큐를 구현하기에는 너무 코드가 길어지고 코딩 테스트에서 활용하기 어렵습니다. index와 delete 연산으로 해결하기 delete연산은 시간복잡도가 O(1)입니다. 다만 리스트의 길이가 줄어들지 않습니다. const list = [0, 1, 2]; delete list[0]; list // [ , 2, 3 ] list[0] // undefined 그래서 head 역할을 하는..