📌heapq다익스트라 최단 경로 알고리즘을 포함해 다양한 알고리즘에서 우선순위 큐 기능을 구현하고자 할 때 사용파이썬의 힙은 최소 힙으로 구성(최소힙: 최상단 원소가 항상 가장 작은 원소)단순히 원소를 힙에 전부 넣었다가 빼는 것만으로도 시간 복잡도 O(NlogN)에 오름차순 정렬이 완료 📌heapq 메서드heapq.heappush(): 힙에 원소 삽입heapq.heappop(): 힙에서 원소 꺼냄 📌힙 정렬을 heapq로 구현하는 코드import heapqdef heapsort(iterable): h = [] # 힙 result = [] # 결과 리스트 # 모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h,..
📌함수똑같은 코드가 반복적으로 사용되어야 할 때 함수를 사용함수를 작성할 때 함수 내부에서 사용되는 변수의 값을 전달받기 위해 매개변수 정의할 수 있음어떠한 값을 반환하고자 할 때는 return 사용매개변수나 return은 존재하지 않을 수도 있음(선택) 📌global 키워드함수 안에서 함수 밖의 변수 데이터를 변경해야 할 때 사용global 키워드로 변수를 지정하면 해당 함수에서는 지역 변수를 만들지 않고 함수 바깥에 선언된 변수를 바로 참조a = 0def func(): global a a += 1for i in range(10): func()print(a) 📌람다 표현식함수를 매우 간단하게 작성하는 방법한 줄로 작성 가능def add(a, b): return a + b# 일..
📌리스트여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용파이썬의 리스트 자료형은 배열(Array)을 채택append(), remove() 등 메서드 지원 📌리스트 컴프리헨션리스트를 초기화하는 방법 중 하나대괄호 [] 안에 조건문과 반복문을 넣는 방식으로 리스트 초기화# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트array = [i for i in range(20) if i % 2 == 1]print(array) 2차원 리스트를 초기화할 때 효과적으로 사용# N x M 크기의 2차원 리스트 초기화n = 3m = 4array = [[0] * m for _ in range(3)]print(array) 📌언더바의 역할반복을 수행하되 반복을 위한 변수의 값을 무시하고자 할 때 언더바 사용for ..
📌계수 정렬특정한 조건이 부합할 때만 사용할 수 있는 매우 빠른 정렬 알고리즘데이터의 크기 범위가 제한되어 정수 형태로 표현할 수 있을 때만 사용 가능일반적으로 가장 큰 데이터와 가장 작은 데이터의 차이가 1,000,000을 넘지 않을 때 효과적 계수 정렬에서는 모든 범위를 담을 수 있는 크기의 리스트(배열)를 선언해야 함 선택, 삽입, 퀵 정렬처럼 직접 데이터의 값을 비교한 뒤에 위치를 변경하며 정렬하는 방식이 아님 데이터의 크기가 제한되어 있다면 데이터 개수가 많더라도 빠르게 동작 정렬 방식1. 가장 작은 데이터부터 가장 큰 데이터까지 모두 담길 수 있도록 하나의 리스트를 생성2. 리스트의 모든 데이터가 0이 되도록 초기화3. 데이터를 하나씩 확인하며 데이터의 값과 동일한 인덱스의 데이터를 1씩 증..