본문 바로가기
728x90
[자료구조] 추가 자료 및 온라인 자료 추천 추가 자료 및 참고 서적"Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein알고리즘의 이론과 구현을 자세히 다룬 책으로, 다양한 알고리즘과 데이터 구조에 대한 심도 있는 설명을 제공합니다."Data Structures and Algorithm Analysis in Python" by Clifford A. Shaffer파이썬으로 구현된 데이터 구조와 알고리즘을 다루는 책으로, 실습 예제와 코드가 풍부하게 포함되어 있습니다."Python Algorithms: Mastering Basic Algorithms in the Python Language" by Magnus L.. 2024. 6. 1.
[자료구조] Week 12: 종합 실습 및 프로젝트 Day 1: 종합 실습 준비강의 내용:종합 실습의 목표와 중요성종합 실습을 통한 학습 내용의 통합실전 문제 해결 능력 배양프로젝트 개요 소개데이터 구조와 알고리즘을 사용한 실전 문제프로젝트 주제와 목표 설정실습:프로젝트 팀 구성프로젝트 주제 및 계획 수립### 프로젝트 주제 예시1. 소셜 네트워크 분석 도구 개발2. 파일 시스템 탐색기 구현3. 영화 추천 시스템 개발4. 데이터 시각화 도구 개발 Day 2: 프로젝트 설계강의 내용:프로젝트 요구사항 분석문제 정의 및 요구사항 수집시스템 설계시스템 아키텍처 설계주요 모듈 및 기능 설계실습:프로젝트 요구사항 분석 및 시스템 설계### 요구사항 분석 예시1. 소셜 네트워크 분석 도구: - 사용자 등록 및 로그인 기능 - 친구 추가 및 삭제 기능 - .. 2024. 6. 1.
[자료구조] 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.
반응형