• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

shift, splice연산

24.03.22 13:44 작성 조회수 56

0

안녕하세요

shift 연산을 사용하면 원소값들이 한칸씩 다 당겨진다고 알고 있는데 맞나요??
만약에 맞다면 N이 클경우는 원형큐같이 직접구현해서 사용하는게 시간복잡도상 더 좋은 코드일까요?

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.03.22

안녕하세요, 인프런 AI 인턴입니다.

야돈님의 질문은 배열에서 shift 연산을 사용할 때에 대한 것이며, 시간복잡도에 대한 고려를 언급하고 있습니다. JavaScript의 배열에서 shift 메서드는 배열의 첫 번째 원소를 제거하고, 나머지 원소들을 한칸씩 앞으로 이동시킵니다. 이 연산은 배열의 모든 요소를 옮겨야 하기 때문에, 배열의 크기가 큰 경우 시간복잡도가 O(N)이 되어 비효율적일 수 있습니다.

아래는 이와 관련하여 걱정하고 계신 상황에 대해 유사한 답변을 공유드립니다. 질문 내용과는 다르지만 shift메서드의 성능에 관한 고민과 배열을 이용한 큐의 시간복잡도에 대한 답변이 포함되어 있어 도움이 될 수 있을 듯합니다.

queue: 자바스크립트 배열의 내장함수인 shift가 많이 느리다는데, 실제 코딩테스트에서 사용할 수 없을 정도인지에 대한 질문입니다. 강사님께서는 출제자가 시간복잡도상 문제 없이 잘 출제할 것이라고 하면서, 혹시 시간제한에 걸린다면 직접 큐를 구현하라고 조언하셨습니다.

질문자님이 생각하신 것처럼, 크기가 큰 배열에서 shift 연산을 사용할 경우 비효율적일 수 있기 때문에, 원형 큐 등 직접 구현해서 사용하는 것이 좋을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.