본문 바로가기
반응형
[자료구조] Week 11: 탐색 알고리즘 - 선형 탐색과 이진 탐색 Day 1: 탐색 알고리즘의 개념과 필요성강의 내용:탐색 알고리즘의 정의와 중요성탐색 알고리즘이란 무엇인가데이터 탐색의 필요성탐색 알고리즘의 실제 응용 사례 (데이터베이스 검색, 네트워크 라우팅 등)탐색 알고리즘의 분류선형 탐색 (Linear Search)이진 탐색 (Binary Search)실습:파이썬 내장 탐색 함수 사용해보기# 파이썬 내장 탐색 함수 예제data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]print("데이터에서 5의 인덱스:", data.index(5))print("데이터에서 2의 존재 여부:", 2 in data) Day 2: 선형 탐색 (Linear Search)강의 내용:선형 탐색의 개념선형 탐색의 정의 및 작동 원리시간 복잡도 분석 (O(n))선형 탐색의 .. 2024. 6. 1.
[자료구조] Week 10: 정렬 알고리즘 - 개념과 고급 알고리즘 Day 1: 정렬의 개념과 필요성강의 내용:정렬의 정의와 중요성정렬이란 무엇인가데이터 정렬의 필요성정렬의 실제 응용 사례 (검색 최적화, 데이터 분석 등)정렬 알고리즘의 분류비교 기반 정렬비비교 기반 정렬실습:파이썬의 내장 정렬 함수 사용해보기# 파이썬 내장 정렬 함수 예제data = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]sorted_data = sorted(data)print("원본 데이터:", data)print("정렬된 데이터:", sorted_data)data.sort()print("데이터 정렬 후:", data) Day 2: 선택 정렬과 삽입 정렬강의 내용:선택 정렬 (Selection Sort)알고리즘 설명시간 복잡도 분석 (O(n^2))삽입 정렬 (Insertion So.. 2024. 6. 1.
[자료구조] Week 9: 그래프 II - 그래프 탐색과 최단 경로 알고리즘 Day 1: 그래프 탐색 - 깊이 우선 탐색 (DFS)강의 내용:깊이 우선 탐색 (DFS)의 개념과 특징DFS의 정의 및 탐색 방식DFS의 시간 복잡도DFS의 구현재귀적 구현비재귀적 구현 (스택 사용)실습:DFS의 재귀적 구현 및 비재귀적 구현# 그래프 탐색 클래스 정의class Graph: def __init__(self, num_vertices): self.num_vertices = num_vertices self.adj_list = [[] for _ in range(num_vertices)] def add_edge(self, u, v): self.adj_list[u].append(v)# DFS 재귀적 구현def dfs_recursive(graph, v.. 2024. 6. 1.
[자료구조] Week 8: 그래프 I - 그래프의 개념과 표현 방법 Day 1: 그래프의 기본 개념과 용어강의 내용:그래프의 정의와 특징그래프의 개념 (정점과 간선으로 이루어진 자료구조)방향 그래프와 무방향 그래프그래프의 기본 용어정점 (Vertex), 간선 (Edge), 인접 (Adjacent), 경로 (Path), 사이클 (Cycle), 연결성 (Connectivity)그래프와 트리의 차이실습:그래프의 기본 용어와 개념을 시각적으로 설명# 그래프의 기본 용어 설명# - 정점(Vertex): 그래프의 노드# - 간선(Edge): 정점 간의 연결# - 인접(Adjacent): 간선으로 연결된 두 정점# - 경로(Path): 정점과 간선의 연속# - 사이클(Cycle): 시작 정점과 끝 정점이 동일한 경로# - 연결성(Connectivity): 모든 정점이 연결된 상태# .. 2024. 6. 1.
[자료구조] Week 7: 트리 II - 이진 탐색 트리와 균형 트리 Day 1: 이진 탐색 트리 (BST)의 개념강의 내용:이진 탐색 트리의 정의와 특징이진 탐색 트리의 개념BST의 구조적 특징 (모든 노드의 왼쪽 자식은 현재 노드보다 작고, 오른쪽 자식은 현재 노드보다 큼)BST의 주요 연산삽입, 삭제, 탐색실습:이진 탐색 트리의 개념 설명 및 주요 연산 구현# 이진 탐색 트리 노드 클래스 정의class TreeNode: def __init__(self, key): self.left = None self.right = None self.val = key# 이진 탐색 트리 삽입 함수 정의def insert(root, key): if root is None: return TreeNode(key) else: .. 2024. 6. 1.
[자료구조] Week 6: 트리 I - 트리의 개념과 이진 트리 Day 1: 트리의 기본 개념과 용어강의 내용:트리의 정의와 특징트리 구조의 개념트리의 용도와 필요성트리의 기본 용어루트, 노드, 간선, 리프, 깊이, 높이, 서브트리 등트리와 그래프의 차이실습:트리의 기본 용어와 개념을 시각적으로 설명# 트리의 기본 용어 설명# - 루트(Root): 트리의 최상단 노드# - 노드(Node): 트리를 구성하는 기본 요소# - 간선(Edge): 노드와 노드를 연결하는 선# - 리프(Leaf): 자식 노드가 없는 노드# - 깊이(Depth): 루트 노드에서 특정 노드까지의 경로 길이# - 높이(Height): 트리의 최대 깊이# - 서브트리(Subtree): 트리의 부분 집합# 트리의 예시를 시각적으로 설명# 예: # A# / \# B .. 2024. 6. 1.
[자료구조] Week 5: 해시 테이블 Day 1: 해시 테이블의 기본 개념강의 내용:해시 테이블의 정의와 특징해시 테이블의 개념과 용도키-값 쌍 저장 구조해시 함수해시 함수의 역할과 중요성좋은 해시 함수의 조건실습:기본 해시 테이블의 개념 설명 및 예제# 해시 테이블의 기본 개념 설명# 해시 테이블은 키-값 쌍으로 데이터를 저장하는 자료구조# 키를 해시 함수에 입력하여 해시 값을 생성하고, 이 해시 값을 이용하여 값을 저장하거나 검색# 파이썬 딕셔너리를 사용한 간단한 해시 테이블 예제hash_table = {}hash_table["apple"] = 1hash_table["banana"] = 2hash_table["cherry"] = 3print("해시 테이블:", hash_table)print("키 'banana'의 값:", hash_tab.. 2024. 6. 1.
[자료구조] Week 4: 우선순위 큐와 힙 Day 1: 우선순위 큐의 기본 개념강의 내용:우선순위 큐의 정의와 특징우선순위 큐의 개념과 용도우선순위 큐와 일반 큐의 차이점우선순위 큐의 주요 연산insert, delete_min (또는 delete_max)실습:기본 우선순위 큐 구현 예제# 리스트를 사용한 간단한 우선순위 큐 구현class PriorityQueue: def __init__(self): self.queue = [] def insert(self, item): self.queue.append(item) self.queue.sort() # 오름차순 정렬 (최소 우선순위 큐) def delete_min(self): if not self.is_empty(): .. 2024. 6. 1.
[자료구조] Week 3: 스택과 큐 Day 1: 스택의 기본 개념강의 내용:스택의 정의와 특징스택의 개념과 용도후입선출(LIFO) 원리스택의 주요 연산push, pop, peek, is_empty실습:리스트를 이용한 스택 구현# 리스트를 사용한 스택 구현class Stack: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def pop(self): if not self.is_empty(): return self.stack.pop() return None def peek(self): if not self.is_empty(): .. 2024. 6. 1.
[자료구조] Week 2: 연결 리스트 Day 1: 연결 리스트의 개요강의 내용:연결 리스트의 정의와 특징연결 리스트의 개념과 필요성배열과 연결 리스트의 비교연결 리스트의 종류단일 연결 리스트이중 연결 리스트원형 연결 리스트실습:연결 리스트의 개념을 설명하는 예제# 연결 리스트의 기본 개념 설명# 배열과 연결 리스트 비교# 배열: 요소가 연속된 메모리 위치에 저장됨# 연결 리스트: 요소가 노드로 저장되고, 각 노드는 다음 노드를 가리키는 포인터를 가짐 Day 2: 단일 연결 리스트강의 내용:단일 연결 리스트의 구조노드의 정의단일 연결 리스트의 구성단일 연결 리스트의 기본 연산노드 삽입, 삭제, 검색실습:단일 연결 리스트를 구현하는 예제# 단일 연결 리스트의 노드 정의class Node: def __init__(self, data): .. 2024. 6. 1.
반응형