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

1. Counter

 

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

 

from collections import Counter로 불러온다

 

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

 

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

 

그림1. Counter의 예시

 

2. deque

 

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

 

from collections import deque로 불러온다

 

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

 

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

 

그림2. deque 사용법1

 

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

 

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

 

그림3. deque 사용법2

 

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

 

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

 

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

 

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

 

그림4. deque 사용법3

 

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

 

popleft로 왼쪽 데이터 빼내기

TAGS.

Comments