제로베이스/데이터분석

[기초노트] 양방향 자료형 Deque, 데크

진주네카라 2021. 12. 1. 20:48
728x90

 

 

Information

데크 또는 덱(deque, double-ended queue)은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다.
두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다.

 

 

 


 

 

요즘 파이썬 알고리즘 인터뷰 책을 읽기 시작했다. 1부를 시작하기 전 프롤로그에서 Deque를 만나면서 낯설기만 한 데크에 대해 알아본다.

 

 

 

 

데크

  • Deque
  • 자료구조
    • 추상 자료형
      • Abstract Data Type, 줄여서 ADT
    • 양방향 자료형
    • 스택 또는 큐로 사용 가능

 

 

 

 

구현

 

1

from collections import deque
nums = [2, 4, 6, 8, 10]
que = deque(nums)
que.rotate(2)   # 2만큼 오른쪽으로 회전
result = list(que)
print(result)	# 출력 [8, 10, 2, 4, 6]

 

 

rotate 함수 n은 n 만큼 회전한다. 양수 n 오른쪽, 음수 n 왼쪽을 의미한다.

 

 

 

2

from collections import deque
deq = deque([2, 4, 6, 8, 10])

 

 

deque 메서드는 list 메서드와 비슷한 기능을 가진다.

 

 

deq.append(12)
print(deq)	# 출력 deque([2, 4, 6, 8, 10, 12])

 

 

deq.appendleft(0)
print(deq)	# 출력 deque([0, 2, 4, 6, 8, 10, 12])

 

 

print(deq.pop())	# 출력 12
print(deq)	# 출력 deque([0, 2, 4, 6, 8, 10])

 

 

 

 

책도 읽고, 관련 글도 쓰면서 알고리즘 이해를 완성하고 싶다.

^-^ 

 

 

 

 

 


예시

https://wikidocs.net/104977

 

03-04 collections.deque - 데크

deque는 앞과 뒤에서 데이터를 처리할 수 있는 양방향 자료형이다. 양방향이기 때문에 스택(Stack)처럼 써도 되고 큐(Queue)처럼 써도 된다. `collectio ...

wikidocs.net

 

도움 책

img. http://www.kyobobook.co.kr/

 

 

도움

https://ko.wikipedia.org/wiki/덱_(자료_구조)

https://ko.wikipedia.org/wiki/추상_자료형 

 

 

 

 

 

728x90