본문 바로가기
반응형
[알고리즘] Week 10: 고급 그래프 이론 - 트리 분해, 트리 DP, 라벨링 기법 Day 1: 트리 분해 (Tree Decomposition)강의 내용:트리 분해의 개념트리 분해란 무엇인가?트리 분해의 목적 및 응용 사례트리 분해의 기본 용어트리 너비 (Treewidth)트리 분해의 정의트리 분해 알고리즘나이스 트리 분해 (Nice Tree Decomposition)시간 복잡도 분석트리 분해의 복잡도 및 효율성실습:간단한 예제 그래프에서 트리 분해 수행# 트리 분해 예제import networkx as nxdef tree_decomposition_example(): G = nx.Graph() G.add_edges_from([(1, 2), (1, 3), (2, 3), (2, 4), (3, 5), (4, 5)]) T = nx.Graph() T.add_edges_fro.. 2024. 6. 2.
[알고리즘] Week 9: 고급 기하 알고리즘 - 개요와 예제 Day 1: 고급 기하 알고리즘 개요강의 내용:기하 알고리즘의 정의 및 중요성기하 알고리즘이란 무엇인가?기하 알고리즘의 응용 분야 (컴퓨터 그래픽스, 로봇 공학, GIS 등)기하 알고리즘의 기본 개념점, 선분, 다각형 등의 기본 요소벡터와 교차 곱 (Cross Product), 내적 (Dot Product)실습:기본 기하 연산 예제 (점, 선분, 벡터 등)import math# 두 점 사이의 거리 계산def distance(p1, p2): return math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)# 벡터의 내적 계산def dot_product(v1, v2): return v1[0] * v2[0] + v1[1] * v2[1]# 벡터의 교차 곱 계산de.. 2024. 6. 2.
[알고리즘] Week 7: 고급 그래프 최단 경로 알고리즘 - 벨만-포드 알고리즘과 존슨 알고리즘 Day 1: 벨만-포드 알고리즘 (Bellman-Ford Algorithm)강의 내용:벨만-포드 알고리즘의 개념벨만-포드 알고리즘이란 무엇인가?다익스트라 알고리즘과의 차이점음의 가중치 허용벨만-포드 알고리즘의 동작 원리각 단계에서 간선의 완화 (Relaxation) 수행음의 사이클 존재 여부 검출벨만-포드 알고리즘의 시간 복잡도시간 복잡도: O(VE)실습:파이썬을 사용한 벨만-포드 알고리즘 구현 및 예제# 벨만-포드 알고리즘 구현class Graph: def __init__(self, vertices): self.V = vertices self.graph = [] def add_edge(self, u, v, w): self.graph.append([u, v.. 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 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 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.
[Python] Week 22: 고급 문법 - 데코레이터 Day 1: 데코레이터의 기본 개념강의 내용:데코레이터의 정의와 필요성데코레이터의 개념과 장점함수와 메서드에 공통 기능 추가기본 데코레이터 작성데코레이터 함수 정의@ 기호를 사용한 데코레이터 적용실습:기본 데코레이터 작성 및 사용 예제# 기본 데코레이터 함수 정의def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print("Something is happening after the function is called.") return wrapper# 데코레이터 적용@my_decoratordef say_hello():.. 2024. 6. 1.
[Python] Week 21: 고급 문법 - 이터레이터와 제너레이터 Day 1: 이터레이터의 기본 개념강의 내용:이터레이터의 정의와 필요성이터레이터의 개념과 장점이터레이터 프로토콜이터레이터의 동작 방식__iter__() 메서드와 __next__() 메서드실습:기본 이터레이터 작성 및 사용 예제# 이터레이터 클래스 정의class MyIterator: def __init__(self, limit): self.limit = limit self.counter = 0 def __iter__(self): return self def __next__(self): if self.counter  Day 2: 내장 이터레이터강의 내용:파이썬 내장 이터레이터리스트, 튜플, 딕셔너리 등의 내장 이터레이터이터레이터 함수iter(.. 2024. 6. 1.
[Python] Week 20: 객체지향 프로그래밍 - 다형성 Day 1: 다형성의 기본 개념강의 내용:다형성의 정의와 필요성다형성의 개념과 장점객체지향 프로그래밍에서 다형성의 역할다형성의 구현메서드 오버라이딩을 통한 다형성다양한 객체의 동일한 인터페이스실습:기본 다형성 예제 작성# 부모 클래스 정의class Animal: def speak(self): pass# 자식 클래스 정의class Dog(Animal): def speak(self): return "Woof!"class Cat(Animal): def speak(self): return "Meow!"# 객체 생성 및 사용animals = [Dog(), Cat()]for animal in animals: print(animal.speak()) # 'W.. 2024. 6. 1.
반응형