목록View All (350)
DATA101
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/4BPro/btq0fjzKvNE/KRkKewvz1h2CJAlIdYZPn1/img.png)
본 포스팅에서는 순차 탐색(Sequential Search)에 대해 알아봅니다. 📚 목차 1. 순차 탐색(이란? 2. 동작 과정 3. 구현(Python) 4. 시간 복잡도 1. 순차 탐색이란? 순차 탐색(Sequential Search)은 말 그대로 리스트 내 특정 데이터를 찾기 위해 앞에서부터 데이터를 차례대로 탐색하는 알고리즘입니다. 2. 동작 과정 순차 탐색의 과정은 아래와 같습니다. 풀어써서 복잡해 보이지만 맨 앞에서부터 차례대로 비교하는 단순한 방법입니다. 1️⃣ 맨 앞 데이터와 찾으려는 데이터가 같은지 탐색합니다. 2️⃣ 데이터가 서로 같지 않다면 다음 데이터와 찾으려는 데이터가 같은지 탐색합니다. 3️⃣ 같은 데이터를 찾기 전까지 2️⃣ 과정을 반복합니다. 리스트 내 데이터가 아무리 많아도 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwLcaA/btqZ3fRFhgj/T5bmrekNSOsqveCFdE4Lo0/img.png)
본 포스팅에서는 정렬 알고리즘 문제 풀이 전략을 공유합니다. 정렬 알고리즘 문제 해결 전략 알고리즘 문제 풀이에 있어서 특별히 문제에서 요구사항이 없을 경우, 단순히 정렬이 필요한 상황에서는 기본 내장 정렬 라이브러리를 활용하시는 것이 가장 좋습니다. 다만, 데이터의 범위가 한정되어 있고 더욱 빠르게 동작하도록 문제를 풀어야 한다면 계수 정렬 알고리즘을 활용하시는 것이 좋습니다. 이처럼 아래에 주어진 상황에 맞는 알고리즘 문제 풀이 전략을 정리해 보았습니다. (1) 정렬 라이브러리 활용 문제 단순히 내장 정렬 라이브러리에 대해 알고 있고 사용할 줄 아는지 묻기 위한 문제 유형입니다. 기본적으로 내장 정렬 함수 사용방법에 대해 기본적인 부분들에 대해 숙지하고 있으면 어렵지 않게 문제를 풀 수 있습니다. (..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bWhIlF/btqZ3eyp7w9/Eh3QslkRgQY83zXWhBv1oK/img.png)
오늘은 파이썬 내장 함수인 sorted()와 sort()를 활용한 데이터 정렬 방법에 대해 공유해 드립니다. 그럼 바로 시작하죠! 목차 1. 기본 정렬 라이브러리 2. sorted 함수 3. sort 함수 4. key 매개변수를 활용한 정렬 기준 설정 5. 정렬 알고리즘 문제 해결 전략 1. 기본 정렬 라이브러리 파이썬에는 sorted 및 sort라는 정렬 함수가 기본적으로 내장되어 있습니다. 이 함수들은 리스트, 딕셔너리, 집합 등의 데이터 타입을 입력값으로 받고, 데이터 타입에 상관없이 항상 리스트 형태로 데이터를 정렬한 결과를 반환하는 것이 특징입니다. 또한, 이 함수들은 최악의 경우에도 O(N*log N) 의 시간 복잡도를 보장한다는 것이 특징입니다. 그럼 sorted 함수와 sort 함수 각각에..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BFaMm/btqZVlwZLLs/9ud9gEP4s7jAGmpGcY6BF0/img.png)
본 포스팅에서는 계수 정렬 알고리즘에 대해 알아봅니다. 📚 목차 1. 계수 정렬이란? 2. 계수 정렬의 동작 과정 3. 계수 정렬의 구현(Python) 4. 계수 정렬의 시간 복잡도 1. 계수 정렬이란? 계수 정렬은 데이터 개수가 많더라도 매우 빠르게 동작하는 정렬 알고리즘 중 하나로서 리스트가 모두 정수 형태로 표현되어 있고 가장 작은 데이터와 가장 큰 데이터의 차이가 1백만(1,000,000) 이하일 때 효과적으로 동작합니다. 이처럼 특정 조건이 부합할 때만 동작하는 이유는 계수 정렬을 활용할 때는 가장 작은 데이터부터 가장 큰 데이터까지 모든 범위의 데이터를 담을 수 있는 크기의 리스트를 선언해야 하기 때문입니다. 예를 들어, 가장 작은 데이터와 가장 큰 데이터의 차이가 1,000,000이라면 총 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/IhkL8/btqZOrZcqs2/l5Um1neZ9mSfyjxyzUjGOk/img.png)
본 포스팅에서는 퀵 정렬(Quick sort) 알고리즘에 대해 알봅니다. 📚 목차 1. 퀵 정렬이란? 2. 퀵 정렬의 동작 과정 3. 퀵 정렬 구현(Python) 4. 퀵 정렬의 시간 복잡도 1. 퀵 정렬이란? 퀵 정렬은 피벗(pivot)이라는 기준 데이터를 설정하고 그 기준 데이터보다 큰 데이터와 작은 데이터의 위치를 변경하는 정렬 방식입니다. 퀵 정렬은 데이터 간의 비교만으로 정렬을 수행하는 비교 정렬 중 하나로서 이름에서 알 수 있듯이 정렬이 빠르다는 특징이 있습니다. 퀵 정렬의 방식은 피벗을 설정하고 데이터를 분할하는 방법에 따라 여러 가지로 구분할 수 있지만, 이번 포스팅에서는 가장 대표적인 분할 방식인 호어 분할(Hoare Partition)을 기준으로 설명드리도록 하겠습니다. 2. 퀵 정렬의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bZwcNJ/btqZFtQLo73/0AzwkyKNitrkqo7ah7v241/img.png)
본 포스팅에서는 삽입 정렬(Insertion sort) 알고리즘에 대해 알아봅니다. 📚 목차 1. 삽입 정렬이란? 2. 삽입 정렬의 동작 과정 3. 삽입 정렬 구현(Python) 4. 삽입 정렬의 시간 복잡도 1. 삽입 정렬이란? 삽입 정렬은 정렬이 필요한 데이터를 찾고 적절한 위치에 삽입하며 정렬하는 알고리즘입니다. 삽입 정렬은 필요할 때만 데이터를 비교하고 삽입하기 때문에 데이터가 어느 정도 정렬되어 있을 때 더욱 효율적으로 동작합니다. 이러한 특징 덕분에 정렬 상태와 상관없이 모든 데이터를 일일이 비교하며 정렬하는 방식인 선택 정렬보다 일반적으로 효율적입니다. [알고리즘] 선택 정렬에 대해 알아보자! (+Python 구현) 오늘은 선택 정렬(selection sort) 알고리즘에 대해 알아보도록 하..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dj9dET/btqZGmpsIlV/TkaABBpp6LgkmPRVckNByK/img.png)
본 포스팅에서는 선택 정렬(selection sort) 알고리즘에 대해 알아봅니다. 📚 목차 1. 선택 정렬이란? 2. 선택 정렬의 동작 과정 3. 선택 정렬 구현(Python) 4. 선택 정렬의 시간 복잡도 1. 선택 정렬이란? 선택 정렬은 여러 개의 데이터가 무작위로 있을 때 전체 데이터에서 매번 가장 작은(또는 가장 큰) 데이터를 선택하여 데이터 간의 위치를 변경하는 과정을 반복하여 데이터를 오름차순(또는 내림차순)으로 정렬할 때 사용합니다. 선택 정렬의 종류는 2가지로 나눌 수 있습니다. 최소 선택 정렬(Min-selection sort): 매번 가장 작은 데이터를 선택하고 데이터 간의 배치를 변경하며 오름차순으로 정렬 최대 선택 정렬(Max-selection sort): 매번 가장 큰 데이터를 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/che2HX/btqZyvt84rn/zPecmhDRkglecLoJSQKZL1/img.png)
본 포스팅에서는 너비 우선 탐색이라고 불리는 BFS(Breadth-First Search)에 대해 알아봅니다. 📚 목차 1. BFS 알고리즘이란? 2. BFS 알고리즘 동작 과정 3. BFS 파이썬 구현 3.1. 소스코드 설명 3.2. 전체 소스코드 1. BFS 알고리즘이란? BFS(Breadth-First Search)란 너비 우선 탐색이라고도 불리며 그래프에서 시작 노드에 인접한 노드부터 탐색하는 알고리즘입니다. BFS 알고리즘은 언제 사용하면 좋을까요? BFS 알고리즘은 주로 그래프에서 모든 간선의 비용이 동일한 조건에서 최단 거리를 구하는 문제를 효과적으로 해결할 수 있는 알고리즘입니다. 그리고 "미로를 빠져나가는 최단 거리(경로)"를 구하는 문제 등에서 효과적으로 활용할 수 있는 알고리즘입니다...