Loading...
2022. 1. 31. 21:20

힙큐(heapq)에 대하여

최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리 트리는 root node에서 밑으로 가지를 뻗어나가는 형태의 자료구조로 binary tree인 이진 트리는 최대 2개까지만 자식 노드를 가진다 최소힙은 부모 node가 자식 node보다 항상 작은 binary tree 최대힙은 부모 node가 자식 node보다 항상 큰 binary tree heap은 배열로 구현되며 파이썬에서는 list로 만들어진다 import heapq를 통해 파이썬에서 heapq 관련 함수 사용가능 기존 리스트를 heapq로 만들려면 heapify()를 이용 heap2 = [50,10,20] heapq.heapify(heap2) print(heap2) [10,50,20] 혹은 빈 리스트를 생생한 후에 heappush..

2022. 1. 2. 21:14

선형구조와 비선형구조

1. 자료구조 자료를 효율적으로 접근하고 수정하기 위해 자료를 조직, 관리, 저장하는 방법 상황에 따라 데이터를 다루는데 시간과 메모리를 효율적으로 사용할 수 있는 자료구조를 사용해야함 선형 구조와 비선형 구조로 나뉜다 2. 선형구조 자료를 구성하는 데이터들이 직선 형태로 순차적으로 나열되어 있는 구조 전후 데이터들 간에 일대일 관계 대표적으로 스택(stack), 큐(queue), deque, 리스트(list) 등이 모두 선형구조이다. 3. 비선형구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조 전후 데이터들 간에 1:N 관계를 가짐 대표적으로 트리(tree), 그래프(graph)가 비선형구조이다. 4. 참고 https://noahlogs.tistory.com/28 [자료구조] 스택, 큐, 데..

2022. 1. 2. 21:01

파이썬의 스택(stack)과 큐(queue)

1. 스택(stack) 나중에 넣은 데이터를 먼저 반환하도록 설계된 자료구조 Last In First Out(LIFO) Data 입력을 push, 출력을 pop 위 그림1은 스택을 가상적으로 표현한 그림 4를 먼저 넣고 다음에 10을 넣었다 마지막에 들어간 10을 처음으로 빼내는 모습 ------------------------------------------------------------------------------------------------------------------------ 이름 그 자체를 생각해보면 외울것이 아니다 데이터를 넣을수록 계속 쌓이는(stack) 자료구조 쌓여있는 구조(stack)에서 무언가 빼낼려면 안에있는 것보다 밖에있는 것을 먼저 뺄수있다는 것을 생각한다면? --..