728x90

Backend/Python 3

[python] heapq: 힙이란? 파이썬에서 힙을 사용하고 싶을 때

먼저, 큐에 대해 다시 생각해보자 일반적인 큐는 FIFO 구조로 먼저 들어온 요소가 먼저 나가는 자료구조이다 우선순위 큐도 있다 우선순위 큐는 데이터들이 우선순위를 가지고 우선순위가 높은 요소가 먼저 나가는 자료구조이다 바로 이 우선순위 큐를 위한 자료구조가 힙이다 배열, 연결리스트, 힙 으로 구현이 가능한데 힙으로 구현하는 것이 O(log n)으로 구현하는 것이 가장 효율적이다(나머진 O(n)) 그럼 힙(heap)이란? 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조 완전 이진 트리이며, 시간복잡도는 O(log n)에 추가와 삭제가 가능하다 최대힙, 최소힙 2가지 종류가 있다 최대힙: 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리 최소힙: 부모..

Backend/Python 2024.04.04

[python] deque: 파이썬에서 큐를 구현하고 싶을 때

deque는 파이썬에서 큐를 구현할 수 있는 모듈이다 deque를 사용하면 무엇이 좋을까? 속도가 리스트에 비해 빠르다 리스트 = O(n) deque = O(1) 큐작업이 굉장히 편해진다 deque는 링크드리스트 로 구현되어 있기 때문에 리스트를 이용한 스택을 이용하는 것보다 빠르기 때문에 사용하기 좋다 deque의 간단한 사용법을 알아보자면 아래와 같이 import 해서 사용할 수 있다 from collections import deque append: 오른쪽 끝에 원소 추가 appendleft: 왼쪽 끝에 원소 추가 pop: 오른쪽 끝에 원소 제거 후 반환 popleft: 왼쪽 끝에 원소 제거 후 반환 maxlen: 큐의 길이 반환 rotate: 큐를 회전 rotate(num): num이 양수일 경우..

Backend/Python 2024.04.03

[python] 리스트 컴프리헨션(List Comprehension) : 반복문과 조건문 줄이고 싶을 때

리스트 컴프리헨션이란? 파이썬에서 간결하게 반복문과 조건문을 줄이는 것! 아래와 같이 사용한다 list = [ 요소에 연산 수행 for interable의 개별 요소 in iterable if 조건] iterable : 반복 가능한 객체 반복문 사용 예시 1에서 10까지 2를 곱한 리스트 생성하는 예시 a_list = [ i*2 for i in range(1,11) ] print(a_list) #[2,4,6,8,10,12,14,16,18,20] 조건문 사용 예시 1에서 10까지 중 홀수만 수 출력 예시 odd = [i for i in range(1, 11) if i % 2 == 1] print(odd) #[1, 3, 5, 7, 9] 다음과 같이 리스트가 아닌 집합, 딕셔너리 형태로도 출력 가능하다 집합 ..

Backend/Python 2024.04.01
728x90