인프런 커뮤니티 질문&답변

Cotton님의 프로필 이미지
Cotton

작성한 질문수

코딩테스트 [ ALL IN ONE ]

doubly linked list 질문입니다.

해결된 질문

작성

·

117

1

안녕하세요.

 

수업을 듣다 질문 사항이 생겨서 이렇게 문의 남깁니다.

 

 

doubly linked list로 구성된

'''

from collections import deque

# deque 선언

q = deque()

'''

에서 'enqueue ' , 'dequeue '의 시간 복잡도가 O(1)인데, 중간에 데이터가 삽입되고 삭제 되는 경우도 시간 복잡도가 O(1)인가요?

 

답변 1

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 Cotton님.

 

doubly linked list 개념상 중간에 데이터 삽입하고 삭제하는 연산의 시간복잡도는 O(1)이여야 합니다.

하지만, 삭제하고 삽입하려면 해당 인덱스 위치를 특정해야되는데, 이 때 시간복잡도가 O(n)이 걸립니다.

 

그래서 결국 deque에서 중간 원소를 삽입하고 삭제하는데에 최종적으로 시간복잡도가 O(n)이 걸린다고 보시면 됩니다.

 

더 궁금한점이 있으면 편하게 질문 주세요~!

Cotton님의 프로필 이미지
Cotton

작성한 질문수

질문하기