Python/Python 기초2025. 4. 3. 21:14[Python/기초] 조합과 순열

브루트포스문제에서 자주 사용되는 조합과 순열에 대해서 알아보자itertools 모듈을 사용하면 매우 간단하게 구할수 있다.조합 (combinations)순서 상관 없이 n개 중 r개를 뽑는 경우 예시로 1,2,3 중에서 2개를 고를 때 가능한 조합(1, 2)(1, 3)(2, 3)(1,2)와 (2,1)은 같은 조합으로 취급한다.사용 방법from itertools import combinationsarr = [1, 2, 3]for comb in combinations(arr, 2): print(comb)시간 복잡도경우의 수: nCr = n! / (r!(n - r)!)입력 크기가 작을수록 사용 적합하다.순열 (permutations)순서 중요하게 n개 중 r개를 뽑는 경우예: [1, 2, 3] 중 2개를..

[Python/기초] heap
Python/Python 기초2023. 12. 25. 17:39[Python/기초] heap

heapq 모듈은 힙(heap) 자료구조를 구현하는데 사용되는 파이썬 내장 모듈입니다. 힙은 부모 노드가 자식 노드보다 항상 작거나 큰 값을 가지는 이진 트리 구조를 가진 자료구조로서, 최소 힙(min heap) 또는 최대 힙(max heap)으로 사용될 수 있습니다. heapq 모듈은 주로 리스트를 사용하여 힙을 구현하며, 이 리스트는 항상 힙의 특성을 만족하도록 유지됩니다.아래는 heapq 모듈에서 제공하는 주요 함수들입니다: heapify(iterable): 주어진 iterable을 힙으로 변환합니다. 시간 복잡도는 O(n)입니다.import heapqdata = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]heapq.heapify(data)print(data) # [1, 1, 2,..

728x90
반응형
image