총 42개
-
인하대 데이터구조 3주차 Homework01 하노이의 탑2025.05.031. 하노이의 탑 하노이의 탑은 재귀적으로 구현할 수 있는 문제로, 입력 n에 대해 2^n - 1번의 이동이 필요합니다. 이 문제에서는 재귀 함수를 사용하여 하노이의 탑을 구현하고, 시간 복잡도와 공간 복잡도를 분석했습니다. 64개의 원판이 있는 경우 약 1.844674407 x 10^19번의 이동이 필요합니다. 1. 하노이의 탑 하노이의 탑은 고대 수학 퍼즐로, 세 개의 기둥과 n개의 원판으로 구성되어 있습니다. 이 퍼즐의 목표는 모든 원판을 한 기둥에서 다른 기둥으로 옮기는 것입니다. 이 과정에서 큰 원판이 작은 원판 위에 놓이...2025.05.03
-
분할 정복 알고리즘의 특징과 부적절한 경우2025.01.191. 분할 정복 알고리즘의 특징 분할 정복 방법은 문제를 해결하기 쉽게 여러 개의 작은 부분으로 문제를 나누고 나눈 문제에 대해 해결해 답을 구한 뒤 각각 해결한 작은 문제 답을 결합해 더 큰 문제를 정복해서 답을 구하는 것이다. 큰 문제를 풀기 위해서 문제를 작은 문제로 구분하기에 이러한 문제 해결 방식을 하향식 접근이라고 한다. 이러한 분할 정복은 문제를 분할, 정복으로 구분해서 해결한다는 특징이 있다. 2. 분할 정복 알고리즘이 부적절한 상황 분할 정복은 문제를 구분해서 어려운 문제를 해결할 수 있다는 장점이 있지만, 함수를 ...2025.01.19
-
데이터의 자료구조 중 스택과 큐 비교 및 구현2025.01.181. 스택 구조 스택(Stack)은 데이터가 나중에 들어온 것이 먼저 나가는(LIFO, Last In First Out) 자료구조입니다. 스택은 데이터를 한쪽 끝에서만 추가하고 제거할 수 있으며, 이 끝부분을 '탑(top)'이라고 부릅니다. 스택은 주로 push와 pop 연산을 제공하며, 재귀적인 함수 호출, 수식의 후위 표기법 변환 및 계산, 깊이 우선 탐색 등 다양한 응용 분야에서 사용됩니다. 2. 큐 구조 큐(Queue)는 데이터가 먼저 들어온 것이 먼저 나가는(FIFO, First In First Out) 자료구조입니다. 큐...2025.01.18
-
조정다각형과 재귀식을 활용한 Bezier 곡선 교점 구하기2025.01.291. Bezier 곡선 Bezier 곡선은 컴퓨터 그래픽스 분야에서 널리 사용되는 곡선 표현 방식입니다. 이 문제에서는 두 Bezier 곡선의 교점을 구하는 방법을 설명합니다. 조정다각형이 겹치면 Bezier 곡선을 반으로 나누고 나눈 곡선들의 조정다각형을 비교하여 교점을 찾습니다. 재귀함수를 사용해서 조정다각형의 크기가 매우 작을 때까지 루프를 반복합니다. 2. 조정다각형 조정다각형은 Bezier 곡선을 정의하는 데 사용되는 다각형입니다. 이 문제에서는 두 Bezier 곡선의 조정다각형을 비교하여 교점을 찾는 방법을 설명합니다. ...2025.01.29
-
순환적인 피보나치 수열 프로그램과 반복적인 피보나치 수열 프로그램의 수행 시간 비교2025.05.061. 피보나치 수열 피보나치 수열은 많은 프로그래밍 문제에서 자주 등장하는 기본적인 수열 중 하나입니다. 이 수열을 구하는 방법에는 순환적인 방법과 반복적인 방법이 있습니다. 순환적인 방법은 재귀적인 호출을 사용하여 수행 시간이 지수적으로 증가하지만, 반복적인 방법은 루프를 사용하여 이전 값들을 저장하고 활용하여 더 효율적입니다. 대규모 데이터 처리를 필요로 하는 경우에는 반복적인 방법이 더 적합합니다. 2. 순환적인 피보나치 수열 프로그램 순환적인 피보나치 수열 프로그램은 재귀적인 호출을 사용하므로 수행 시간이 지수적으로 증가합니...2025.05.06
-
사칙 연산 모듈 작성 및 호출 프로그램2025.11.161. 모듈화 프로그래밍 프로그램을 기능별로 분리하여 별도의 모듈 파일로 작성하는 방식입니다. calculator.py에 사칙 연산 함수들을 정의하고, main.py에서 이를 import하여 호출함으로써 코드의 재사용성과 유지보수성을 높입니다. 이는 대규모 프로젝트에서 필수적인 프로그래밍 패턴입니다. 2. 함수 정의 및 호출 add, subtract, multiply, divide 함수를 정의하여 각각의 사칙 연산을 수행합니다. 각 함수는 두 개의 매개변수를 받아 연산 결과를 반환합니다. divide 함수는 0으로 나누는 오류를 처리...2025.11.16
-
큐와 스택의 구조 비교: 삽입과 삭제 연산2025.11.151. 스택(Stack) 자료구조 스택은 후입선출(LIFO: Last-In-First-Out) 방식의 자료구조로, 가장 최근에 삽입된 데이터가 가장 먼저 삭제된다. 삽입 연산은 push()라는 이름으로 스택의 맨 위에서 실행되고, 삭제 연산은 pop()이라는 이름으로 동일하게 맨 위에서 실행된다. 또한 top() 연산자를 사용하여 스택의 맨 위 항목을 확인할 수 있다. 스택은 함수 호출 스택, 괄호 검사, 역폴란드 표기법 등 다양한 분야에서 활용된다. 2. 큐(Queue) 자료구조 큐는 선입선출(FIFO: First-In-First-...2025.11.15
-
인공지능의 탐색방법: 깊이 우선 탐색과 너비 우선 탐색, 경험적 탐색방법2025.05.121. 깊이 우선 탐색 깊이 우선 탐색은 그래프의 한 쪽부터 깊이 있게 탐색하는 방법입니다. 첫째, 시작 노드에서 인접한 하나의 노드를 선택합니다. 둘째, 해당 노드를 기준으로 인접한 노드가 없을 때까지 탐색을 계속합니다. 마지막으로, 스택과 재귀함수를 사용하여 방문하지 않은 노드를 탐색할 수 있습니다. 깊이 우선 탐색은 모든 노드를 탐색할 수 있지만, 최단거리가 아닌 경우에 사용됩니다. 2. 너비 우선 탐색 너비 우선 탐색은 모든 경우를 탐색할 수 있으며, 단방향 최단거리를 탐색하는 데 유용합니다. 먼저 한 단계를 건너서 탐색을 하...2025.05.12
-
방통대 알고리즘 출석과제물2025.01.241. 빅오 함수 입력 크기 n에 대한 빅오 함수들을 성능 관점에서 가장 나쁜 것부터 차례대로 나열하면 O(2^n) -> O(n^3) -> O(n^2) -> O(nlogn) -> O(n) -> O(logn) -> O(1)이다. 수행시간에 비례한 효율성을 고려할 경우 n의 값이 증가하면 연산 시간도 증가하며, 뚜렷한 차이를 보인다. 따라서 시간 복잡도 함수식의 결과로 수행시간의 효율성을 증명할 수 있다. 2. 이진 탐색 이진 탐색의 점화식은 T(n) = O(1)일 때 n=1, T(n/2) + O(1)일 때 n>=2이며, 폐쇄형은 T(n...2025.01.24
-
컴퓨터 그래픽스 정이십면체 구현 및 이벤트 기능2025.11.141. 정이십면체(Icosahedron) 구현 정이십면체는 12개의 꼭짓점과 20개의 삼각형 면으로 구성된 정다면체입니다. 코드에서는 12개의 3D 좌표로 정의된 꼭짓점들을 이용하여 20개의 면을 생성합니다. 각 면은 3개의 정점으로 이루어진 삼각형이며, 면마다 다른 RGB 색상(노란색, 청록색, 자홍색)이 지정됩니다. createIcosahedron() 함수에서 정점 배열과 색상 배열을 초기화하여 그래픽스 렌더링을 위한 데이터를 준비합니다. 2. 변환 행렬(Transformation Matrix) 적용 display() 함수에서 크...2025.11.14
