Python/라이브러리

파이썬(python) 라이브러리 - collections.deque

snowman95 2021. 4. 22. 21:28
728x90
반응형

collections.deque


파이썬에서 queue를 이용할때 사용한다.

list를 이용하면 add 연산에 O(n) 만큼의 시간이 들기 때문에 deque를 사용해야함.

 

데이터가 오른쪽으로 추가되고 왼쪽으로 나가는 형태

q = collections.deque()
q.append() # 오른쪽으로 더하기
q.popleft() # 왼쪽으로 값 빼기

q.appendleft() # 왼쪽으로 추가
q.pop() # 오른쪽으로 빼기


q.extend() # 오른쪽으로 값 추가 (각요소를 잘라서 넣어줌)
deque(['a','b','c']).extend('defg')
→ ['a','b','c','d','e','f','g']
append로 넣으면 'defg'로 들어가짐


q.rotate(n)
n만큼 요소들을 회전시켜준다.
n<0 : 왼쪽
n>0 : 오른쪽

 

덱/큐 활용하는 문제

1. 맨 위의 요소를 맨 뒤로 이동시킨다. → deque() 사용

2. 리스트에서 요소를 왼쪽으로 k번, 오른쪽으로 k번 이동시킨다. → deque().rotate() 사용

 

1021번: 회전하는 큐

첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가

www.acmicpc.net

 

5430번: AC

각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.

www.acmicpc.net

 

반응형