- Today
- Total
목록View All (355)
DATA101
본 포스팅에서는 계수 정렬 알고리즘에 대해 알아봅니다. 📚 목차 1. 계수 정렬이란? 2. 계수 정렬의 동작 과정 3. 계수 정렬의 구현(Python) 4. 계수 정렬의 시간 복잡도 1. 계수 정렬이란? 계수 정렬은 데이터 개수가 많더라도 매우 빠르게 동작하는 정렬 알고리즘 중 하나로서 리스트가 모두 정수 형태로 표현되어 있고 가장 작은 데이터와 가장 큰 데이터의 차이가 1백만(1,000,000) 이하일 때 효과적으로 동작합니다. 이처럼 특정 조건이 부합할 때만 동작하는 이유는 계수 정렬을 활용할 때는 가장 작은 데이터부터 가장 큰 데이터까지 모든 범위의 데이터를 담을 수 있는 크기의 리스트를 선언해야 하기 때문입니다. 예를 들어, 가장 작은 데이터와 가장 큰 데이터의 차이가 1,000,000이라면 총 ..
본 포스팅에서는 퀵 정렬(Quick sort) 알고리즘에 대해 알봅니다. 📚 목차 1. 퀵 정렬이란? 2. 퀵 정렬의 동작 과정 3. 퀵 정렬 구현(Python) 4. 퀵 정렬의 시간 복잡도 1. 퀵 정렬이란? 퀵 정렬은 피벗(pivot)이라는 기준 데이터를 설정하고 그 기준 데이터보다 큰 데이터와 작은 데이터의 위치를 변경하는 정렬 방식입니다. 퀵 정렬은 데이터 간의 비교만으로 정렬을 수행하는 비교 정렬 중 하나로서 이름에서 알 수 있듯이 정렬이 빠르다는 특징이 있습니다. 퀵 정렬의 방식은 피벗을 설정하고 데이터를 분할하는 방법에 따라 여러 가지로 구분할 수 있지만, 이번 포스팅에서는 가장 대표적인 분할 방식인 호어 분할(Hoare Partition)을 기준으로 설명드리도록 하겠습니다. 2. 퀵 정렬의..
본 포스팅에서는 삽입 정렬(Insertion sort) 알고리즘에 대해 알아봅니다. 📚 목차 1. 삽입 정렬이란? 2. 삽입 정렬의 동작 과정 3. 삽입 정렬 구현(Python) 4. 삽입 정렬의 시간 복잡도 1. 삽입 정렬이란? 삽입 정렬은 정렬이 필요한 데이터를 찾고 적절한 위치에 삽입하며 정렬하는 알고리즘입니다. 삽입 정렬은 필요할 때만 데이터를 비교하고 삽입하기 때문에 데이터가 어느 정도 정렬되어 있을 때 더욱 효율적으로 동작합니다. 이러한 특징 덕분에 정렬 상태와 상관없이 모든 데이터를 일일이 비교하며 정렬하는 방식인 선택 정렬보다 일반적으로 효율적입니다. [알고리즘] 선택 정렬에 대해 알아보자! (+Python 구현) 오늘은 선택 정렬(selection sort) 알고리즘에 대해 알아보도록 하..
본 포스팅에서는 선택 정렬(selection sort) 알고리즘에 대해 알아봅니다. 📚 목차 1. 선택 정렬이란? 2. 선택 정렬의 동작 과정 3. 선택 정렬 구현(Python) 4. 선택 정렬의 시간 복잡도 1. 선택 정렬이란? 선택 정렬은 여러 개의 데이터가 무작위로 있을 때 전체 데이터에서 매번 가장 작은(또는 가장 큰) 데이터를 선택하여 데이터 간의 위치를 변경하는 과정을 반복하여 데이터를 오름차순(또는 내림차순)으로 정렬할 때 사용합니다. 선택 정렬의 종류는 2가지로 나눌 수 있습니다. 최소 선택 정렬(Min-selection sort): 매번 가장 작은 데이터를 선택하고 데이터 간의 배치를 변경하며 오름차순으로 정렬 최대 선택 정렬(Max-selection sort): 매번 가장 큰 데이터를 ..
본 포스팅에서는 너비 우선 탐색이라고 불리는 BFS(Breadth-First Search)에 대해 알아봅니다. 📚 목차 1. BFS 알고리즘이란? 2. BFS 알고리즘 동작 과정 3. BFS 파이썬 구현 3.1. 소스코드 설명 3.2. 전체 소스코드 1. BFS 알고리즘이란? BFS(Breadth-First Search)란 너비 우선 탐색이라고도 불리며 그래프에서 시작 노드에 인접한 노드부터 탐색하는 알고리즘입니다. BFS 알고리즘은 언제 사용하면 좋을까요? BFS 알고리즘은 주로 그래프에서 모든 간선의 비용이 동일한 조건에서 최단 거리를 구하는 문제를 효과적으로 해결할 수 있는 알고리즘입니다. 그리고 "미로를 빠져나가는 최단 거리(경로)"를 구하는 문제 등에서 효과적으로 활용할 수 있는 알고리즘입니다...
본 포스팅에서는 깊이 우선 탐색 DFS(Depth-First Search) 알고리즘에 대해 알아봅니다. 📚 목차 1. DFS 알고리즘이란? 2. DFS 알고리즘 동작 과정 3. DFS 파이썬 구현 1. DFS 알고리즘이란? DFS(Depth-First Search)는 그래프 전체를 탐색하는 방법(i.e., 완전 탐색) 중 하나로, '깊이'를 우선적으로 탐색하는 알고리즘입니다. DFS는 한 노드를 시작으로 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색합니다. 예를 들어, DFS 알고리즘은 미로 탐색 시 한 방향으로 모든 노드를 방문하다가 더 이상 다른 노드를 방문할 수 없는 노드에 이르렀을 때, 다시 가장 가까운 갈래길로 돌아가 방문하지 않은 노드 방향으로 탐색을 이어가는 방법입니다...
본 포스팅에서는 큐(Queue) 자료구조에 대해 알아봅니다. 📚 목차 1. 큐(Queue) 자료구조란? 2. 큐 동작 예시 3. 큐 구현(Python) 1. 큐(Queue) 자료구조란? 큐 자료구조는 선입선출(先入先出, First In First Out, 줄여서 FIFO) 구조로 흔히 놀이공원 내 놀이기구 대기줄에 비유합니다(그림 1 참고). 즉, 놀이기구 대기줄에 먼저 선 사람(데이터 입력)이 먼저 놀이기구를 타는(데이터 출력/제거) 방식입니다(단, 새치기는 없다고 가정). 큐 자료구조는 아래 2가지 핵심적인 함수로 동작합니다. 데이터 삽입(append) 데이터 삭제(popleft) 큐 자료구조를 사용할 때는 오버플로우(Overflow)와 언더플로우(Underflow)가 발생하지 않도록 유의해야 합니다..
안녕하세요, 오늘은 파이썬의 pandas 라이브러리를 활용하여 데이터프레임의 칼럼 이름을 변경하는 방법에 대해 공유해 드립니다. 그럼 바로 시작하죠! 목차 1. 데이터프레임 셋업 2. 칼럼 이름 변경하기 2.1. columns 함수: 새로운 칼럼 이름으로 덮어쓰기 2.2. rename 함수: 특정 칼럼만 지정하여 이름 변경하기 2.3. lambda 함수: 기존 칼럼 이름에 새로운 패턴 추가하기 1. 데이터프레임 셋업 판다스 모듈 설치하기 pip install pandas 판다스 라이브러리를 설치하지 않으셨다면 설치해 주세요. 판다스 모듈 불러오기 import pandas as pd 판다스 라이브러리를 불러옵니다. 데이터프레임 생성 df = pd.DataFrame({"식별번호": [1, 2, 3, 4, 5..