python 자료구조(3)
-
[Python] Set(셋)
파이썬에서 집합을 구현하고 싶을 땐 ?! Set 을 이용하면 됩니다. 파이썬에서는 set이라는 집합 자료구조를 제공합니다. 집합은 set( ) 과 같이 초기화 할 수 있습니다. set 언제 사용하면 좋을까!? 집합은 이럴 때 사용하면 좋습니다. 1. 데이터의 중복이 없어도 될 때 집합에 담긴 데이터들은 모두 유니크 합니다. 즉, 집합에 5를 2번 넣어도 집합은 자신이 가진 원소 5는 1개라고 생각합니다. 2. 다루는 데이터의 삽입/삭제/검사가 자주 일어 날 때 특히 다루는 데이터가 정수가 아닐 때 숫자형 데이터는 list를 사용하여 index를 통해 접근할 수 있습니다. 하지만 문자열,등 리스트에서 index로 활용할 수 없는 데이터를 빠르게 탐색시에는 set을 이용하면 좋습니다. 예를 들어, 리스트에 ..
2021.01.16 -
[Python 자료구조] Heap (힙)
파이썬에서의 Heap ?! Python에서의 Heap은 heapq 모듈과 Queue 모듈의 PriorityQueue 클래스를 통해 heapq를 제공합니다. 단, MinHeap으로 구현되어있어 가장 앞에 있는 원소가 가장 작은 원소가 됩니다. heapq 와 PriorityQueue 의 공통점과 차이점 공통점은 둘다 MinHeap으로 구현되어 있다는 점입니다. 즉 가장 앞에 있는 원소가 가장 작은 원소 입니다. 차이점은 PriorityQueue는 클래스이고, heapq는 모듈이라는 점입니다. 힙에 데이터를 넣으려면 !? PriorityQueue는 객체를 생성 후 메소드를 호출해야한다. heapq는 객체를 생성하지 않고 heapify(리스트 객체)처럼 함수를 호출하여 사용한다. Heap을 언제 사용하면 좋을까..
2021.01.09 -
[Python 자료구조] Queue (큐) 구현하기
Queue(큐) ?! 큐는 FIFO (First - In - First - Out) 로써 먼저 삽입된 item 순으로 꺼내어진다고 이해하면 쉬울거 같습니다. 큐의 종류에는 순차적인 큐와 원형 큐(원형으로 이루어진 Queue)가 있습니다. Python에서 Queue 구현하기 Python에서는 collections 모듈의 deque 를 통해 큐 자료구조를 구현합니다. Deque (덱) 객체 deque는 스택과 큐를 합친 자료구조로 가장자리에 원소를 넣거나 뺄 수 있습니다. deque([iterable[, maxlen]]) deque의 초기화 함수 (리스트, queue의 최대 길이를 넣을 수 있다) append(x) 원소 x를 deque 맨 오른쪽에 삽입 popleft() deque에 가장 왼쪽에 있는 원소를..
2021.01.06