본문 바로가기

전체 글

(171)
[Python][모듈] 힙큐[heapq] 데이터 정렬을 위해 힙큐 내장 모듈에 대해 알아보자. 1) 추가, 삭제 # 최소 힙 import heapq heap = [] # 추가 heapq.heappush(heap, 7) heapq.heappush(heap, 1) heapq.heappush(heap, 0) heapq.heappush(heap, 2) print(heap) # 결과 : [0, 2, 1, 7] # 삭제 print(heapq.heappop(heap)) print(heap) # 결과 : 0 # [1, 2, 7] 2) 리스트를 힙으로 변환 # 리스트 -> 힙 변환 li = [2, 6, 1, 3, 5] heapq.heapify(li) print(li) # [1, 3, 2, 6, 5] 3) 최대 힙 모듈은 최소 힙으로 동작한다. 각 값에 우선 순..
[그래프/트리] 힙[Heap] 우선순위 큐란? 우선순위 개념을 큐에 도입한 자료구조이다. 데이터들은 우선순위를 가지고 있고, 순위가 높은 순부터 나간다. 스택[FILO]과 큐[FIFO]와는 다르다 우선순위 큐는 힙으로 구현이 가능하다. 힙이란? 힙은 두 가지로 설명할 수 있다. 1) 최대 힙 '부모 노드의 키 값 >= 자식 노드의 키 값'인 완전 이진 트리 2) 최소 힙 '부모 노드의 키 값
[시간 복잡도][Python] 리스트와 딕셔너리의 시간 복잡도 정리 자료는 아래 링크를 들어가면 된다. 초보몽키님 자료 파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) · 초보몽키의 개발공부로그 파이썬 자료형 별 주요 연산자의 시간 복잡도 (Big-O) 14 Jun 2017 | 들어가기 알고리즘 문제를 풀다 보면 시간복잡도를 생각해야 하는 경우가 종종 생긴다. 특히 codility는 문제마다 시간복잡도 기준 wayhome25.github.io insert, delete, remove 등 몇몇 부분에서는 list보다 dict이 더 빠르다. list는 dict과 다르게 각 index를 가지고 있고, 이벤트 발생 시 값마다 index가 변동돼야 할 수도 있기 때문이다. 시간 복잡도를 생각하며 문제를 풀자 !