
총 36개
-
인하대 데이터구조 3주차 Homework01 하노이의 탑2025.05.031. 하노이의 탑 하노이의 탑은 재귀적으로 구현할 수 있는 문제로, 입력 n에 대해 2^n - 1번의 이동이 필요합니다. 이 문제에서는 재귀 함수를 사용하여 하노이의 탑을 구현하고, 시간 복잡도와 공간 복잡도를 분석했습니다. 64개의 원판이 있는 경우 약 1.844674407 x 10^19번의 이동이 필요합니다. 1. 하노이의 탑 하노이의 탑은 고대 수학 퍼즐로, 세 개의 기둥과 n개의 원판으로 구성되어 있습니다. 이 퍼즐의 목표는 모든 원판을 한 기둥에서 다른 기둥으로 옮기는 것입니다. 이 과정에서 큰 원판이 작은 원판 위에 놓이...2025.05.03
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대한 설명2025.01.151. 선택 정렬 선택 정렬은 주어진 데이터 내에서 특정 위치에 맞는 자료를 선택해 위치를 교환하는 알고리즘입니다. 구현이 간단하고 추가적인 메모리를 사용하지 않는다는 장점이 있지만, 항상 전체 데이터를 비교하고 정렬하므로 비효율적이라는 단점이 있습니다. 2. 버블 정렬 버블 정렬은 인접한 두 항목의 값을 비교한 뒤, 기준을 만족하면 두 값을 교환하여 정렬하는 방식입니다. 개념이 단순하기에 프로그래밍하기 쉽다는 장점이 있지만, 연산의 횟수가 데이터의 크기에 따라 기하급수적으로 증가하기 때문에 정렬에 걸리는 시간이 오래 걸린다는 단점이...2025.01.15
-
컴퓨터 내부의 자료표현 방법과 선형구조의 자료의 삽입과 삭제 방식2025.05.061. 데이터 구조 데이터 구조란 데이터를 효율적으로 활용하기 위해 데이터의 특성에 맞게 데이터를 분류, 정리, 저장, 처리하는 모든 업무를 말합니다. 컴퓨터에서 데이터를 처리하려면 먼저 컴퓨터에 데이터를 표현해야 컴퓨터가 처리할 수 있습니다. 컴퓨터는 이렇게 표현된 데이터를 특정 프로그램에서 처리합니다. 2. 단순 구조 단순 구조는 True/False, 정수, 실수, 문자열 등 컴퓨터에서 기본으로 제공되는 데이터 유형입니다. 3. 선형 구조 선형 구조는 파일 시스템 또는 데이터베이스에 레코드를 하나만 링크하는 형식입니다. 이것은 배...2025.05.06
-
재귀함수와 포인터의 개념 및 활용2025.01.191. 재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수로, 주어진 문제를 더 작은 하위 문제로 분해하여 해결하는 방식으로 동작합니다. 재귀함수는 종료 조건을 명시적으로 정의해야 하며, 이 조건이 충족될 때 함수 호출을 중단하고 반환값을 계산합니다. 재귀함수는 분할 정복 알고리즘, 백트래킹, 데이터 구조 순회, 수학적 계산 및 문제 해결, 문자열과 배열 처리 등 다양한 분야에서 활용됩니다. 2. 포인터 포인터는 메모리의 주소를 저장하는 변수로, C언어에서 메모리 관리와 복잡한 데이터 구조 구현에 중요한 역할을 합니다. 포인터는 메모...2025.01.19
-
C언어 1 - 재귀함수와 포인터의 개념 및 활용2025.01.151. 재귀함수 재귀함수는 함수가 자기 자신을 호출하여 문제를 해결하는 기법입니다. 이 기법은 큰 문제를 작은 문제로 나누어 해결할 수 있게 해주며, 특히 반복적이고 계층적인 구조의 문제를 해결하는 데 유용합니다. 재귀함수를 사용할 때는 기본 조건(base case)과 재귀 조건(recursive case)을 명확히 정의해야 합니다. 재귀함수의 대표적인 사용 사례로는 팩토리얼 계산, 피보나치 수열 계산, 트리 탐색 등이 있습니다. 2. 포인터 포인터는 다른 변수의 메모리 주소를 저장하는 변수로, 간접적으로 변수에 접근하고 조작할 수 ...2025.01.15
-
원형 큐에 존재하는 요소의 반환하는 연산 get-count를 코딩하시오2025.01.121. 원형 큐의 구조와 동작 원리 원형 큐는 선형 큐와 달리 엔드 연결된 원형 데이터 구조입니다. 큐 요소는 주기적으로 저장되며 큐의 전면과 후면을 나타내는 포인터를 사용하여 관리됩니다. 원형 큐는 크기가 고정되어 있기 때문에 큐가 가득 차면 새로운 요소를 추가할 수 없습니다. 따라서 큐의 전면 및 후면 포인터는 원형이며 요소를 추가하거나 삭제함으로써 기능합니다. 2. get-count 연산의 구현 get-count 함수는 원형 큐에 저장된 요소의 수를 반환합니다. 이 작업은 큐의 앞과 뒤를 가리키는 포인터를 사용하여 항목을 건너 ...2025.01.12
-
데이터 탐색 방법 선택을 위한 정렬 여부 확인2025.05.081. 순차 탐색 순차 탐색은 데이터 배열의 처음부터 끝까지 비교하며 탐색하는 방법으로, n개의 데이터에 대해 평균 (n+1)/2의 탐색이 필요하며 최악의 경우 n번의 비교가 필요하다. 2. 이진 탐색 이진 탐색은 정렬된 데이터에 대하여 배열의 중간값을 기준으로 계속 자르는 방식으로 탐색을 진행하며, n개의 데이터에 대해 최대 log₂n의 비교가 필요하다. 3. 데이터 정렬 여부 확인 순차 탐색을 진행할 때는 데이터 정렬 여부가 필요 없지만, 이진 탐색을 할 때는 배열이 정렬되어 있는지 확인하는 것이 가장 중요하다. 데이터의 규모에 ...2025.05.08
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대해 설명하시오2025.01.151. 선택 정렬 선택 정렬은 가장 간단한 정렬 알고리즘 중 하나이다. 리스트에서 가장 작은 항목을 선택하여 순서대로 정렬하는 방식이다. 이는 다른 정렬 알고리즘에 비해 구현이 간단하고 이해하기 쉽다. 그러나 시간 복잡도가 O(n^2)으로 큰 데이터셋에서는 비효율적이다. 2. 버블 정렬 버블 정렬은 인접한 두 요소를 비교하고 필요에 따라 위치를 교환하는 정렬 알고리즘이다. 리스트를 한 번 훑어서 가장 큰 요소를 맨 끝으로 보내는 과정을 반복하여 정렬한다. 선택 정렬과 마찬가지로 구현이 간단하지만 시간 복잡도가 O(n^2)이므로 큰 데...2025.01.15
-
변수의 기능, 선언 방법, 작성 규칙 및 데이터 형의 종류2025.01.131. 변수의 기능 변수는 프로그래밍 언어에서 데이터를 저장하는 기본 단위로, 임시 저장소 역할을 합니다. 변수를 통해 프로그램은 실행 중 필요한 데이터에 쉽게 접근하고 수정 및 재활용할 수 있습니다. 변수의 핵심 기능 중 하나는 데이터의 가변성 관리입니다. 변수는 프로그램 실행 도중 값이 바뀔 수 있어 같은 코드를 다양한 상황에 유연히 적용할 수 있습니다. 변수는 코드 내 데이터 추상화를 가능케 해 복잡한 프로그램을 단순하고 이해하기 쉽게 만듭니다. 또한 변수는 함수나 메서드 간 데이터 전달 매개체 역할도 합니다. 2. 변수 선언과...2025.01.13
-
인하대 데이터구조 9주차 Homework3 Maxheap2025.05.031. Max Heap 이 프레젠테이션은 Max Heap 자료구조를 다루는 프로그램을 작성하는 방법에 대해 설명합니다. 프로그램은 사용자로부터 명령을 받아 Max Heap에 대한 다양한 작업을 수행할 수 있습니다. 이러한 작업에는 요소 삽입, 삭제, 최대값 출력, 특정 순위 요소 삭제 및 출력, 전체 요소 출력 등이 포함됩니다. 프로그램은 입력 오류 처리 기능도 포함하고 있어 잘못된 입력이 들어오는 경우에도 계속해서 입력을 받을 수 있습니다. 1. Max Heap Max Heap은 완전 이진 트리 구조를 가지며, 각 노드의 값이 자식...2025.05.03