매일은 아니더라도 꾸준하게
728x90

파이썬알고리즘 2

[알고리즘이론] 우선순위 큐(Priority Queue) 파이썬으로 구현하기

파이썬에서 우선순위 큐(Priority Queue)는 heapq 모듈을 이용하여 구현할 수 있습니다. heapq 모듈은 이진 힙(binary heap) 자료구조를 제공하며, 우선순위 큐는 이진 힙을 이용하여 구현됩니다. 이진 힙은 완전 이진 트리(complete binary tree)의 일종으로, 최솟값 혹은 최댓값을 빠르게 찾기 위해 구현된 자료구조입니다. 파이썬의 heapq 모듈은 기본적으로 최소힙(min heap)을 제공합니다. 따라서 최소값을 빠르게 찾을 수 있습니다. 최대값을 찾으려면 입력된 값에 대한 음수를 취하여 최소값을 찾은 후, 다시 음수를 취하는 방법으로 최대값을 구할 수 있습니다. 다음은 heapq 모듈을 이용하여 우선순위 큐를 구현한 예제입니다. import heapq pq = []..

[알고리즘이론] 슬라이딩 윈도우(Sliding Window) 파이썬으로 구현하기

슬라이딩 윈도우(Sliding Window)는 데이터 구조를 이용하여 고정된 크기의 윈도우(Window)를 일정 간격으로 이동시키면서 데이터를 처리하는 기법입니다. 이 기법은 배열, 문자열, 연결 리스트 등 다양한 자료형에 적용할 수 있으며, 주로 연속된 데이터의 부분집합을 찾거나, 부분집합을 이용한 최소 혹은 최대값 등을 찾을 때 사용됩니다. 파이썬에서는 리스트나 문자열 등의 자료형에서 슬라이싱(Slicing)을 이용하여 슬라이딩 윈도우를 구현할 수 있습니다. 슬라이싱은 연속된 일정 구간의 원소를 선택할 때 사용하는 파이썬의 기능으로, 다음과 같이 구현됩니다. lst = [1, 2, 3, 4, 5] window = lst[start:end] # start 이상 end 미만 구간 선택 위 코드에서 sta..

728x90