공부/파이썬 2

[파이썬] heapq 모듈 < import heapq >

[Heapq 모듈] - heapq heap 같은 경우는 해당 리스트에서 가장 큰 값을 뺄 때 시간 복잡도 및 효율성을 고려한 모듈이라 할 수 있다. 데이터를 저장 후 정렬하는 것이 아니라, 데이터를 저장하면서 정렬하기 위해선 이 heapq 모듈을 사용해야 한다. 하지만 중요한 점은 heap은 이진트리를 기반으로 정렬된다는 것이다. 즉, heap으로 정렬된 리스트는 엄밀히 말하면 완전히 정렬 되진 않는다. 자식노드가 부모노드보다 크기만 하면 되는 조건을 가지고 있기에 sorted함수 와는 다르게 정렬이 된다. 그래서 heap같은 경우 최대값과 최솟값을 구할 때 주로 사용된다. (또한, heap은 root가 최솟값이 되도록 설정 된다.) 특히나 반복적으로 리스트에 값을 집어넣거나 빼면서 최대, 최솟값을 구할..

공부/파이썬 2021.08.30

[파이썬] Collections 모듈 < import collections >

[Collections 모듈] - deque deque(데크)는 double-ended queue의 줄임말로 양방향에서 데이터를 처리할 수 있는 queue형 자료구조를 의미한다. 그렇다면 deque는 도대체 왜? 언제? 쓰는 것일까? deque는 스택이나 큐를 사용할 때 이용하면 일반적인 리스트보다 빠른 연산 속도를 제공한다. 즉, 시작점의 값을 넣고 빼거나, 끝 점의 값을 넣고 빼는 데 최적화된 연산 속도를 제공한다는 뜻이다. 리스트에서 push나 pop을 자주 사용해야 하는 문제가 있다면 deque를 사용하는 것을 적극 추천한다. [deque의 method들] 더보기 append(x) 데크의 오른쪽에 x를 추가 appendleft(x) 데크의 왼쪽에 x를 추가 extend(iterable) itera..

공부/파이썬 2021.08.26