알고리즘

collections (deque/Counter)

HeyTeddy 2021. 12. 21. 17:36
반응형

collections이라는 라이브러리에서는 deque와 Counter가 많이 쓰인다.

deque

deque와 list의 차이점시간 복잡도이다.

list의 경우는 앞쪽에 있는 값을 처리할 때 리스트 개수에 따라 시간이 많이 소요된다.

앞쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(N),

뒤쪽에 값을 추가/제거 할 경우 시간 복잡도는 O(1)이 걸린다.

 

deque는 슬라이싱, 인덱싱이 불가능하지만 데이터를 추가/삭제할 때는 매우 효과적이다.

- popleft() : 리스트의 첫 번째 값을 제거

- pop() : 리스트의 마지막 값을 제거

- appendleft() : 리스트의 맨 앞에 값을 추가

- append() : 리스트의 마지막에 값을 추가

from collections import deque

data = deque([3,5,7])
data.appendleft(1)
data.append(9)
print(data)

# deque([1, 3, 5, 7, 9)]

 

Counter

counter는 등장 횟수를 세는 기능을 제공

from collections import Counter

list = Counter(['red', 'blue', 'red', 'green', 'blue', 'blue'])

print(list['red'])
print(list['blue'])
print(list['green'])
print(dict(list))

# 3
# 2
# 1
# {'red': 2, 'blue': 3, 'green': 1}
반응형

'알고리즘' 카테고리의 다른 글

그리디 알고리즘 Greedy  (0) 2021.12.22
math  (0) 2021.12.21
파이썬(python) 17425번 약수의 합  (0) 2021.12.21
파이썬(python) 2530번 인공지능 시계  (0) 2021.12.21
bisect  (0) 2021.12.20