본문 바로가기
반응형
[알고리즘] Week 8: 동적 프로그래밍 - 개념과 예제 Day 1: 동적 프로그래밍의 개념강의 내용:동적 프로그래밍의 정의와 중요성동적 프로그래밍(DP)이란 무엇인가?동적 프로그래밍의 기본 원리 (중복 부분 문제, 최적 부분 구조)동적 프로그래밍의 장점 및 활용 사례동적 프로그래밍과 분할 정복의 차이메모이제이션 (Top-down) vs. 테이블화 (Bottom-up)실습:간단한 동적 프로그래밍 문제 예제 설명# 피보나치 수열의 메모이제이션을 사용한 동적 프로그래밍 예제def fibonacci_memo(n, memo={}): if n in memo: return memo[n] if n  Day 2: 피보나치 수열 (Bottom-up 방식)강의 내용:Bottom-up 방식의 개념테이블화 방법 (Bottom-up) 소개피보나치 수열의 Bot.. 2024. 6. 2.
[알고리즘] Week 7: 분할 정복 알고리즘 - 개념과 예제 Day 1: 분할 정복의 개념강의 내용:분할 정복의 정의와 중요성분할 정복이란 무엇인가?분할 정복 알고리즘의 기본 원리 (분할, 정복, 합병)분할 정복의 장점 및 활용 사례분할 정복의 장단점문제를 더 작은 부분 문제로 나누어 해결재귀적 접근과 비교했을 때의 장점실습:간단한 분할 정복 알고리즘 예제 설명# 분할 정복의 간단한 예제: 배열의 최대값 찾기def find_max(arr, low, high): if low == high: return arr[low] mid = (low + high) // 2 max1 = find_max(arr, low, mid) max2 = find_max(arr, mid + 1, high) return max(max1, max2)# 예제 .. 2024. 6. 2.
[알고리즘] Week 6: 재귀 알고리즘 - 개념과 예제 Day 1: 재귀의 개념강의 내용:재귀의 정의와 중요성재귀란 무엇인가?재귀 함수의 기본 구조 (기저 조건과 재귀 호출)재귀 알고리즘의 중요성 및 활용 사례재귀의 장단점재귀의 장점 (간결함, 특정 문제에 대한 자연스러운 표현)재귀의 단점 (성능 문제, 스택 오버플로우 위험)실습:간단한 재귀 함수 작성 및 실행# 재귀 함수의 기본 예제: 1부터 n까지의 합 계산def recursive_sum(n): if n == 1: return 1 else: return n + recursive_sum(n - 1)# 예제 실행print("1부터 5까지의 합:", recursive_sum(5)) # 15 Day 2: 팩토리얼 계산강의 내용:팩토리얼의 개념팩토리얼의 정의 (n! = n *.. 2024. 6. 2.
[알고리즘] Week 5: 탐색 알고리즘 II - 이진 탐색 트리 및 균형 트리 Day 1: 이진 탐색 트리 (Binary Search Tree)강의 내용:이진 탐색 트리의 개념이진 탐색 트리의 정의 및 특징이진 탐색 트리의 시간 복잡도 분석 (평균 O(log n), 최악 O(n))이진 탐색 트리의 주요 연산삽입, 삭제, 탐색실습:이진 탐색 트리 구현 및 기본 연산# 이진 탐색 트리 노드 클래스 정의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. 2.
[알고리즘] Week 4: 탐색 알고리즘 I - 탐색 개념 및 기본 알고리즘 Day 1: 탐색의 개념강의 내용:탐색의 정의와 중요성탐색이란 무엇인가?탐색의 필요성탐색 알고리즘의 실제 응용 사례탐색 알고리즘의 분류선형 탐색이진 탐색실습:파이썬 내장 탐색 함수 사용해보기# 파이썬 내장 탐색 함수 예제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))선형 탐색의 장단점단순하고 이해하기 쉬움큰 데이터셋에서는 비효율적실습:선형 탐색 알고리즘 구현 및 예제# 선형 탐색 알고리즘 구현def linear_sea.. 2024. 6. 2.
[알고리즘] Week 3: 정렬 알고리즘 II - 삽입 정렬 및 고급 정렬 알고리즘 Day 1: 삽입 정렬 (Insertion Sort)강의 내용:삽입 정렬의 개념삽입 정렬의 정의 및 작동 원리삽입 정렬의 시간 복잡도 분석 (최선의 경우 O(n), 최악의 경우 O(n^2))삽입 정렬의 장단점소규모 데이터셋에 효율적이미 정렬된 데이터에 매우 효율적실습:삽입 정렬 알고리즘 구현 및 예제# 삽입 정렬 알고리즘 구현def insertion_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 and key  Day 2: 퀵 정렬 (Quick Sort)강의 내용:퀵 정렬의 개념퀵 정렬의 정의 및 작동 원리 (분할 정복)시간 복잡도 분석 (평균 O(n log n), 최악 O.. 2024. 6. 1.
[알고리즘] Week 2: 정렬 알고리즘 I - 정렬 개념 및 기본 알고리즘 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: 버블 정렬 (Bubble Sort)강의 내용:버블 정렬의 개념버블 정렬의 정의 및 작동 원리버블 정렬의 시간 복잡도 분석 (O(n^2))버블 정렬의 장단점이해 및 구현이 쉬움비효율적이며 큰 데이.. 2024. 6. 1.
[알고리즘] Week 1: 알고리즘 개요 및 기본 개념 2024. 6. 1.
[자료구조] 추가 자료 및 온라인 자료 추천 추가 자료 및 참고 서적"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.
반응형