코딩테스트에서 유용한 Counter와 deque

1. Counter

 

시퀀스 타입 데이터의 원소 개수를 dict형으로 반환해주는 아주 유용한 함수

 

from collections import Counter로 불러온다

 

집합 연산도 가능함 근데 큰 의미가 있을까?

 

리스트 내에서 개별 원소들의 빈도수를 세는 것에는 분명히 의미 있다

 

etc-image-0
그림1. Counter의 예시

 

2. deque

 

스택과 큐를 동시에 구현한 자료형

 

from collections import deque로 불러온다

 

append, extend, pop 등을 모두 지원하는데

 

list가 O(n)O(n)이라면 deque는 O(1)O(1)이라는 점에서 유용하다

 

etc-image-1
그림2. deque 사용법1

 

append로 오른쪽에 데이터를 넣어주고

 

appendleft로 왼쪽에 데이터를 넣어준다

 

etc-image-2
그림3. deque 사용법2

 

extend로 오른쪽에 리스트 데이터를 넣어주고

 

extendleft로 왼쪽에 리스트 데이터를 넣어준다

 

extendleft 결과에 주목 5,6,7이 붙는게 아니라 7,6,5가 붙어... 의미가 있나??

 

rotate(n)으로 데이터를 n칸 오른쪽 이동

 

etc-image-3
그림4. deque 사용법3

 

pop으로 오른쪽 데이터를 빼낸다

 

popleft로 왼쪽 데이터 빼내기

728x90