[Python] heapq 모듈
파이썬에서 우선순위 큐 알고리즘을 구현할 수 있도록 제공하는 내장 모듈(공식 문서)이다. 다만, 이 모듈은 최소 힙만을 지원한다. 따라서 최댓값을 찾아야 하는 경우는, 이 모듈을 응용하여 다른 방식으로 활용해야 한다. 개요 파이썬이 설치되어 있다면, 다음과 같이 간단하게 임...
파이썬에서 우선순위 큐 알고리즘을 구현할 수 있도록 제공하는 내장 모듈(공식 문서)이다. 다만, 이 모듈은 최소 힙만을 지원한다. 따라서 최댓값을 찾아야 하는 경우는, 이 모듈을 응용하여 다른 방식으로 활용해야 한다. 개요 파이썬이 설치되어 있다면, 다음과 같이 간단하게 임...
여러 정렬된 자료의 집합을 병합해ㅔ 한 개의 정렬된 집합으로 만듦.
카운팅 정렬(a.k.a 계수 정렬) 원소를 직접 비교하지 않고, 원소들의 개수를 세어 정렬하는 방식이다. 즉, 항목의 순서를 결정하기 위해 집합에 각 항목이 몇 개씩 있는지 센다. 이미지 출처 : https://m.blog.naver.com/PostView.nhn?blogI...
개요 분할 정복 방식을 적용해 정렬을 진행하는 알고리즘이다. 정렬 알고리즘 계의 최고 존엄격으로, 매우 효율적이다. 원리 리스트 중 하나를 피봇으로 선택하고, 피봇보다 작은 원소는 왼쪽에, 큰 원소는 오른쪽에 정렬한다. 이후 피봇값을 중심으로 리스트를 분할하고, 분할된 각각의...
개요 자료 내 모든 원소들을 앞에서부터 차례대로 이미 정렬된 부분과 비교하여, 자신의 위치를 찾아냄으로써 정렬을 완성하는 알고리즘이다. 도서관 사서가 책을 정렬할 때 일반적으로 활용되는 정렬 방식이다. 사람의 머리로 이해하기는 간단하지만, 코드로 구현했을 때 효율성이 떨어진다....
선택 정렬 선택 정렬은 주어진 자료 중 가장 작은(혹은 가장 큰) 값의 원소부터 차례대로 선택하여 위치를 교환해 나간다. 학교 다닐 때 키순서대로 줄을 섰던 것을 떠올리면 된다. 가장 작은(혹은 가장 큰) 수부터 정렬하기 시작하여 위치를 교환하는 정렬 알고리즘이다. 이를 적용하...
개요 인접한 두 원소를 비교하며 자리를 계속해서 교환해 나가는 정렬 방식이다. 매우 직관적이나, 그만큼 비효율적이다. 원리 각 단계마다 다음과 같은 과정을 거친다. 단계별로 모든 원소에 대해 인접한 두 값을 비교한다. 앞의 값이 뒤의 값보다 크다면(혹은 작다면) 자...
정렬 알고리즘을 살펴보기 전에
알고리즘 스터디 DP팀 발표 내용 및 SW Expert Academy 동적 계획법 강의 내용을 참고하였습니다. 정의 동적 계획법(Dynamic Programming)은 최적화 문제를 해결하는 알고리즘이다. 그리디 알고리즘과 비슷하게, 이 알고리즘 역시 문제를 해결하기 ...
연결 리스트란, 각 노드가 데이터와 포인터를 가지고 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 데이터를 담고 있는 노드들이 포인터를 통해 서로 연결된다.
«Neural Network» CNN 모델에 앙상블을 적용해 보자. (feat.클래스…)
머신러닝 프로젝트의 전 과정을 이해하자.