- Vue
- 이진트리
- 쟝고
- 완전검색
- count
- Queue
- SQL
- 큐
- DB
- 스택
- migrations
- distinct
- drf
- stack
- ORM
- M:N
- Django
- outer join
- create
- 뷰
- 통계학
- 트리
- Article & User
- regexp
- 그리디
- 백트래킹
- delete
- Tree
- N:1
- 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 |
목록데이터 사이언스 (50)
데이터 분석 기술 블로그

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

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

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

큐 (선형)FIFO방식으로 작동하는 선입 선출 자료구조enqueue() → 요소 삽입 O(1)dequeue() → 요소 제거 O(1)front() → 맨 앞 요소 확인 O(1)원형 큐: 배열을 재사용하여 메모리 낭비 방지 (프린트 대기열)우선순위 큐: 값의 우선순위에 따라 요소가 정렬됨( 응급실 환자 대기열)덱: 앞뒤로 삽입 / 삭제 가능 (캐시 구현)

스택 (선형)LIFO방식으로 작동하는 후입 선출 자료구조push() → 요소 삽입 O(1)pop() → 요소 제거 O(1)peek() → 가장 위의 요소 확인 O(1)재귀 함수 호출 스택, 괄호 검사 등에 활용사용 예제: 웹 뒤로 가기 / 앞으로 가기

연결 리스트 (선형)각 노드가 데이터와 다음 노드를 가리키는 포인터를 포함하는 자료구조종류로 단일 연결 리스트, 이중 연결 리스트, 원형 연결 리스트배열보다 메모리 낭비가 없고 크기 변경이 용이포인터 변경만 하면 되므로 삽입 / 삭제가 빠름 → O(1)특정 인덱스 접근이 느림 → O(n)사용 예제: 텍스트 편집

배열 (선형 자료 구)동일한 데이터 타입을 가진 요소들이 연속된 메모리 공간에 저장되는 자료구조고정된 크기, 빠른 랜덤 접근인덱스를 이용한 O(1) 빠른 접근 속도삽입 / 삭제가 비효율적 → 둘 다 O(n)사용 예제: 학생 성적 목록, 월별 매출 저장

1. 최단 경로최단 경로 정의간선의 가중치가 있는 그래프에서 두 정점 사이의 경로들 중에 간선의 가중치의 합이 최소인 경로하나의 시작 정점에서 끝 정점까지의 최단 경로다익스트라(dijkstra) 알고리즘 : 음의 가중치를 허용하지 않습니다.벨만-포드(Bellman-Ford) 알고리즘 : 음의 가중치 허용모든 정점들에 대한 최단 경로플로이드-워샬(Floyd-Warshall) 알고리즘2. Dijkstra 알고리즘시작 정점에서 거리가 최소인 정점을 선택해 나가면서 최단 경로를 구하는 방식입니다.시작정점(s)에서 끝정점(t)까지의 최단 경로에 정점 x가 존재합니다.이때, 최단경로는 s에서 x까지의 최단 경로와 x에서 t까지의 최단경로로 구성됩니다.탐욕 기법을 사용한 알고리즘으로 MST의 프림 알고리즘과 유사합니다.