- regexp
- 완전검색
- M:N
- 통계학
- 이진트리
- distinct
- outer join
- ORM
- Vue
- create
- 트리
- 스택
- Article & User
- Tree
- 뷰
- SQL
- drf
- 큐
- 그리디
- N:1
- stack
- migrations
- delete
- DB
- 백트래킹
- Queue
- count
- 쟝고
- Django
- update
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
목록2025/02 (28)
데이터 분석 기술 블로그

삽입 정렬"각 요소를 적절한 위치에 삽입하며 정렬하는 방식"현재 요소를 앞쪽 정렬된 부분과 비교하여 올바른 위치에 삽입거의 정렬된 데이터에서 빠르게 동작(O(n))하지만, 일반적으로 비효율적(O(n²))삽입 정렬 동작 원리첫 번째 요소는 이미 정렬된 상태로 간주두 번째 요소를 앞쪽 정렬된 부분과 비교하여 적절한 위치에 삽입세 번째 요소도 앞쪽 정렬된 부분과 비교하여 삽입이 과정을 마지막 요소까지 반복# Pseudo CodeFUNCTION InsertionSort(arr) FOR i FROM 1 TO length(arr) - 1 key = arr[i] j = i - 1 WHILE j >= 0 AND arr[j] > key DO arr[j + 1..

선택 정렬"가장 작은(또는 큰) 값을 선택해서 정렬하는 단순한 정렬 알고리즘"리스트에서 가장 작은 값을 찾아 맨 앞 요소와 교환하는 방식단순하지만 비효율적(O(n²)), 실무에서는 거의 사용되지 않음선택 정렬 동작 원리리스트에서 가장 작은 값을 찾아 첫 번째 요소와 교환두 번째 요소부터 끝까지 탐색하여, 가장 작은 값을 찾아 두 번째 요소와 교환이 과정을 반복하여 리스트가 완전히 정렬될 때까지 수행# Pseudo CodeFUNCTION SelectionSort(arr) FOR i FROM 0 TO length(arr) - 1 min_index = i FOR j FROM i + 1 TO length(arr) - 1 IF arr[j] 선택 정렬의 시간복잡도경..

버블 정렬"옆에 있는 요소와 비교하며 swap(교환)하여 정렬하는 가장 기초적인 정렬 알고리즘" 큰 값이 거품(Bubble)처럼 밀려 올라가는 방식가장 단순한 정렬 방법이지만, 성능이 좋지 않아 실무에서는 거의 사용되지 않음버블 정렬 동작 원리리스트의 처음부터 시작하여 인접한 두 개의 값을 비교만약 앞의 값이 크다면, 두 값을 교환 (swap)리스트의 끝까지 반복하면 가장 큰 값이 맨 뒤로 이동위 과정을 반복하여 정렬이 완료될 때까지 진행# Pseudo CodeFUNCTION BubbleSort(arr) FOR i FROM 0 TO length(arr) - 1 swapped = FALSE FOR j FROM 0 TO length(arr) - i - 1 I..
알고리즘의 효율성을 평가하는 핵심 개념 → "시간"과 "메모리(공간)" 시간복잡도(Time Complexity) → 알고리즘이 실행되는 데 걸리는 시간공간복잡도(Space Complexity) → 알고리즘이 사용하는 메모리 공간 크기즉, 빠르고 효율적인 알고리즘을 찾으려면 "시간"과 "공간"을 모두 고려해야 한다.1. 시간복잡도(Time Complexity)입력 크기(n)에 따라 실행 시간이 어떻게 변하는지 나타내는 함수Big-O 표기법(O(n)) 을 사용하여 최악의 경우(Worst Case)를 표현 시간복잡도 종류 표기법의미예제O(1)상수 시간리스트 첫 번째 요소 접근 (arr[0])O(log n)로그 시간이진 탐색 (Binary Search)O(n)선형 시간리스트 전체 탐색 (for 반복문)O(n l..

해시 테이블 (비선형)키를 해시 함수에 의해 해시 값으로 변환하여 저장하는 자료 구조삽입 / 삭제 / 탐색이 O(1)서로 다른 키가 같은 인덱스로 해싱되는 경우 충돌 해결이 필요하다.Chaining: 같은 인덱스에 연결 리스트로 여러 개의 값을 저장개방 주소법: 충돌 시 다른 빈 공간을 찾아 저장중복 없는 데이터 저장 (set 구현 가능), API 요청 결과를 저장하여 반복적인 요청을 줄이는 캐싱과 메모이제이션에 활용 가능

그래프 (비선형)정점(Vertex)과 간선으로 구성된 자료 구조무방향 그래프유방향 그래프가중 그래프비가중 그래프완전 그래프트리순환 그래프DFS(깊이 우선 탐색): 스택 사용, 백트래킹에 활용BFS(너비 우선 탐색): 큐 사용, 최단 경로 탐색

트리 (비선형)노드와 간선으로 구성된 계층적 자료 구조이진트리: 각 노드가 최대 두 개의 자식을 가짐이진 탐색 트리: 왼쪽 자식은 부모보다 작고, 오른쪽 자식은 부모보다 큼힙: 최소값 / 최댓값을 빠르게 찾기 위한 완전 이진트리 (게임 리더보드)삽입 / 삭제 → O(log n)탐색 → BST는 O(log n) 일반 트리는 O(n)