python deque 사용

Y·2022년 11월 2일
0

백준 15828번을 풀면서 deque를 사용했다.
deque는 알고리즘 풀이를 하면서 자주 쓰게 되는데, 오랜만에 쓰다보면 사용법이 종종 헷갈릴 때가 있어서 정리해두고자 한다.
deque는 O(1)의 속도로 매우 빠르며, popleft()와 같은 메서드 등을 제공하기 때문에 FIFO인 queue를 이용하는 문제를 python으로 풀이할때 사용하기에 좋다. (stack의 경우 LIFO이므로 그냥 list로도 쉽게 구현할 수 있다.)
deque는 from collections import deque를 통해 import해올 수 있고, (변수명) = deque()로 선언하면 된다. (deque([1,2,3])과 같은 형식으로도 선언할 수 있다.) 메서드들은 다음과 같다.

  • append(item) : 오른쪽 끝에 삽입
  • apendleft(item) : 왼쪽 끝에 삽입
  • pop() : 오른쪽 끝 요소 반환 및 삭제
  • popleft() : 왼쪽 끝 요소 반환 및 삭제
  • extend(array) : array를 기존 deque의 오른쪽에 추가
  • extendleft(array) : array를 기존 deque의 왼쪽에 추가
  • remove(item) : 해당 아이템을 찾아서 삭제
  • rotate(number) : 해당 숫자만큼 회전(양수:시계방향, 음수:반시계 방향)

개인적으로는 queue를 이용한 문제를 풀이할때 deque를 쓰기 때문에 append와 popleft를 가장 많이 쓴 것 같고, 가끔 rotate를 사용해야하는 문제들도 있었던 것 같다.

profile
개발자, 학생

0개의 댓글