본문 바로가기
728x90
[자료구조] Week 12: 종합 실습 및 프로젝트 Day 1: 종합 실습 준비강의 내용:종합 실습의 목표와 중요성종합 실습을 통한 학습 내용의 통합실전 문제 해결 능력 배양프로젝트 개요 소개데이터 구조와 알고리즘을 사용한 실전 문제프로젝트 주제와 목표 설정실습:프로젝트 팀 구성프로젝트 주제 및 계획 수립### 프로젝트 주제 예시1. 소셜 네트워크 분석 도구 개발2. 파일 시스템 탐색기 구현3. 영화 추천 시스템 개발4. 데이터 시각화 도구 개발 Day 2: 프로젝트 설계강의 내용:프로젝트 요구사항 분석문제 정의 및 요구사항 수집시스템 설계시스템 아키텍처 설계주요 모듈 및 기능 설계실습:프로젝트 요구사항 분석 및 시스템 설계### 요구사항 분석 예시1. 소셜 네트워크 분석 도구: - 사용자 등록 및 로그인 기능 - 친구 추가 및 삭제 기능 - .. 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 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.
[자료구조] Week 1: 자료구조 개요 및 배열 Day 1: 자료구조의 개요강의 내용:자료구조의 정의와 중요성자료구조의 개념자료구조가 필요한 이유자료구조의 종류선형 자료구조 vs 비선형 자료구조배열, 리스트, 스택, 큐, 트리, 그래프 등실습:다양한 자료구조의 예시와 활용 사례 설명# 자료구조의 예시# 리스트, 스택, 큐, 트리, 그래프 등 설명# 리스트 예시my_list = [1, 2, 3, 4, 5]print("리스트:", my_list)# 스택 예시 (리스트를 사용한 간단한 스택)stack = []stack.append(1)stack.append(2)stack.append(3)print("스택:", stack)stack.pop()print("스택 (pop):", stack)# 큐 예시 (리스트를 사용한 간단한 큐)from collections i.. 2024. 6. 1.
[Roadmap] C/C++/C# Index 1. C 언어 2. C++ 3. C# 4. 자료구조/알고리즘 5. 컴퓨터공학1. C 언어C 언어1. 모두의 코드(C언어) [book]2. 코딩도장(C언어) [book]3. Makefile [video] [book]4. CMake [video] [book] 2. C++C++1. 모두의 코드(C++) [book]2. 기초부터 시리즈: c/c++ 기초부터 [book]2. Effective C++ [book]3. 전문가를 위한 C++ [book]4. C++ 소프트웨어 디자인패턴 [book]5. 23주년 개정판 대규모 C++ I편: 절차와 아키텍처 [book]3.  C#C#1. 예제로 배우는 C# 프로그래밍 [book]2. C# 프로그래밍 입문(기초) [video]3. 이것이 C#이다 [video] .. 2024. 5. 13.
반응형