총 27개
-
2023년 1학기 알고리즘 출석수업 만점 받은 과제물2025.01.241. 이진 탐색 이진 탐색은 정렬된 상태의 데이터 중 원하는 값을 탐색하는 알고리즘이다. 이진 탐색은 먼저 주어진 데이터 중 중앙값이 목표 값과 일치하는 지 비교한다. 그리고 데이터가 정렬되어 있음을 이용해, 중앙값이 목표 값보다 작다면 중앙값보다 큰 값을 지니는 쪽, 중앙값이 목표 값보다 크다면 중앙값보다 작은 값을 지니는 쪽에 대해 다시 중앙값과 목표 값을 비교하며 데이터를 절반씩 줄여가는 과정을 반복하며 원하는 값을 찾는다. 2. 퀵 정렬 퀵 정렬은 데이터 중 하나의 값을 피벗으로 뽑고 데이터를 그 값보다 큰 쪽과 작은 쪽으로...2025.01.24
-
[A+레포트] 검색 알고리즘 유형을 정리하고 이진탐색(검색)알고리즘에 대해 설명하시오.2025.01.131. 검색 알고리즘 유형 검색 알고리즘은 크게 선형 검색, 이진 검색, 해시 기반 검색, 그래프 기반 검색 알고리즘으로 분류할 수 있다. 각 알고리즘은 데이터의 구조, 양, 검색 대상의 특성에 따라 선택되며, 시간 복잡도와 공간 복잡도 측면에서 평가된다. 효율적인 검색 알고리즘은 대규모 데이터 집합을 빠르게 처리하고 적은 자원을 사용하여 정보를 검색한다. 2. 이진탐색 알고리즘 이진탐색 알고리즘은 정렬된 데이터 집합에서 특정 값을 효율적으로 찾는 방법이다. 이 알고리즘은 분할 정복 전략을 사용하여 검색 범위를 절반씩 줄여나가며, 시...2025.01.13
-
데구알 과제1 행렬곱 시간복잡도 분석2025.05.131. 행렬곱 시간복잡도 분석 이 프레젠테이션에서는 행렬곱 연산의 시간복잡도를 분석하였습니다. 먼저 for loop를 이용한 프로그래밍 방식에서는 3개의 for문이 사용되어 Θ(n^3)의 시간복잡도가 발생합니다. 그리고 recursive 행렬곱 방식에서는 행렬을 분할하여 재귀적으로 계산하는데, 이 경우 시간복잡도는 Θ(n^3)으로 나타납니다. 이를 통해 행렬곱 연산의 시간복잡도는 O(n^3)임을 알 수 있습니다. 1. 행렬곱 시간복잡도 분석 행렬곱은 선형대수학에서 매우 중요한 연산 중 하나입니다. 행렬곱의 시간복잡도를 분석하는 것은 ...2025.05.13
-
정렬 알고리즘 중 선택 정렬, 버블 정렬, 퀵 정렬, 병합 정렬에 대한 설명2025.01.151. 선택 정렬 선택 정렬은 주어진 데이터 내에서 특정 위치에 맞는 자료를 선택해 위치를 교환하는 알고리즘입니다. 구현이 간단하고 추가적인 메모리를 사용하지 않는다는 장점이 있지만, 항상 전체 데이터를 비교하고 정렬하므로 비효율적이라는 단점이 있습니다. 2. 버블 정렬 버블 정렬은 인접한 두 항목의 값을 비교한 뒤, 기준을 만족하면 두 값을 교환하여 정렬하는 방식입니다. 개념이 단순하기에 프로그래밍하기 쉽다는 장점이 있지만, 연산의 횟수가 데이터의 크기에 따라 기하급수적으로 증가하기 때문에 정렬에 걸리는 시간이 오래 걸린다는 단점이...2025.01.15
-
이진트리의 개념과 이진트리 탐색 방법2025.01.041. 이진트리 이진 트리는 트리 안에 포함된 하나의 종류로, 모든 노드가 두 개 이하의 연결선을 가지고 있는 트리를 말합니다. 이진 트리는 사향 트리, 전 이진 트리, 정 이진 트리로 구분할 수 있습니다. 사향 트리는 노드가 한쪽으로만 정렬된 이진 트리이고, 전 이진 트리는 레벨별로 왼쪽부터 차례로 채워진 완전 이진 트리입니다. 정 이진 트리는 모든 내부 정점이 두 개의 자식을 갖는 이진 트리입니다. 2. 이진트리 탐색 이진 트리 탐색은 깊이 우선 탐색과 너비 우선 탐색으로 나눌 수 있습니다. 깊이 우선 탐색에는 중위 순회, 전위 ...2025.01.04
-
방통대 방송대 알고리즘 1페이지 암기노트 핵심요약정리2025.01.251. 자료구조 및 알고리즘 자료구조, 알고리즘, 시간복잡도, 점화식, 분할정복, 이진탐색, 퀵정렬, 합병정렬, 선택문제, 동적프로그래밍, 피보나치수열, 연쇄행렬곱셈, 문자열편집거리, 최단경로, 저울문제, 동전거스름돈, 배낭문제, 최소신장트리, 작업스케줄링, 허프만코딩, 정렬알고리즘, 탐색알고리즘, 해싱, 근사알고리즘 등 다양한 알고리즘 개념과 기법들을 정리하고 있습니다. 1. 자료구조 및 알고리즘 자료구조와 알고리즘은 컴퓨터 과학의 핵심 분야로, 효율적인 프로그래밍과 문제 해결을 위해 매우 중요합니다. 자료구조는 데이터를 효과적으로...2025.01.25
-
재귀적 성질과 재귀적 알고리즘의 특징2025.01.281. 재귀적 알고리즘의 개념 재귀적 알고리즘은 자기 자신을 반복적으로 호출하여 문제를 해결하는 알고리즘을 말한다. 이는 기본적으로 하나의 큰 문제를 여러 개의 작은 문제로 나누고, 이 작은 문제들을 해결하면서 최종적인 답을 도출하는 구조를 가진다. 재귀 알고리즘의 기본 구조는 기저 조건(Base case)과 재귀 단계(Recursive step)로 구성된다. 2. 재귀적 알고리즘과 비재귀적 알고리즘의 차이점 재귀적 알고리즘은 문제를 직관적이고 간결하게 표현할 수 있지만, 재귀 호출이 반복되면서 스택 메모리를 사용하므로 문제의 크기가...2025.01.28
-
재귀함수와 포인터의 개념 및 활용2025.01.191. 재귀함수 재귀함수는 자기 자신을 다시 호출하는 함수로, 주어진 문제를 더 작은 하위 문제로 분해하여 해결하는 방식으로 동작합니다. 재귀함수는 종료 조건을 명시적으로 정의해야 하며, 이 조건이 충족될 때 함수 호출을 중단하고 반환값을 계산합니다. 재귀함수는 분할 정복 알고리즘, 백트래킹, 데이터 구조 순회, 수학적 계산 및 문제 해결, 문자열과 배열 처리 등 다양한 분야에서 활용됩니다. 2. 포인터 포인터는 메모리의 주소를 저장하는 변수로, C언어에서 메모리 관리와 복잡한 데이터 구조 구현에 중요한 역할을 합니다. 포인터는 메모...2025.01.19
-
자료구조(프로그램을 자료구조와 알고리즘으로 나누어 설명)2025.01.031. 자료구조 자료구조는 데이터를 어떠한 형태로 저장하고 관리할 것인지에 대한 방법으로, 자료를 어떤 효율적 방법으로 저장할 것인가를 의미합니다. 프로그램을 구성하는 핵심 요소 중 하나입니다. 2. 알고리즘 알고리즘은 저장된 데이터를 찾거나 변형하거나 수정할 때 필요한 방법으로, 문제를 해결하기 위한 절차를 의미합니다. 프로그램을 구성하는 또 다른 핵심 요소입니다. 1. 자료구조 자료구조는 프로그래밍에서 매우 중요한 개념입니다. 데이터를 효율적으로 저장하고 관리하는 방법을 제공하기 때문에 복잡한 문제를 해결하는 데 필수적입니다. 배...2025.01.03
-
주로 많이 쓰이는 트리에는 여러 종류의 트리가 사용된다. 이진트리와 이진탐색트리가 쓰이는 사례를2025.01.221. 이진 트리 이진 트리는 모든 노드 차수가 2 이하인 트리로 공집합 혹은 하나의 뿌리 노드에서 왼쪽 부분의 트리와 오른쪽 부분으로 이루어진 유한한 집합 구조를 의미한다. 이러한 이진 트리에는 순서 트리, 오리엔티드 트리, 포화 이진 트리, 완전 이진 트리, 사향 이진 트리 등 여러 가지 종류가 있다. 이진 트리는 산술 표현식 등에 사용되는 사례가 있다. 2. 이진 탐색 트리 이진 탐색 트리는 이진 트리에서 모든 노드가 서로 다른 키 값을 가지고 이진 트리에서 임의의 노드 n에 대해 n의 키 값이 항상 n의 왼쪽 자식 노드의 키 ...2025.01.22
