Divide-and-Conquer Algorithm
·
📚 STUDY/📈 알고리즘
📌 Divide-and-Conquer Algorithm이란문제를 여러 부분으로 나눈 뒤, 각 부분을 재귀적으로 해결한다.그 후, 각 부분의 해답을 결합해 전체 문제의 해답을 도출한다.분할(Divide): 문제를 더 작은 하위 문제로 나눈다.정복(Conquer): 하위 문제를 재귀적으로 해결한다.결합(Combine): 하위 문제의 해를 결합하여 전체 문제를 해결한다.📌 Merge Sortdivide-and-conquer 방식 기반으로 동작문제를 나눠 해결하고, 통합하는 방식 시간 복잡도분할단순히 배열을 반으로 자르는 작업으로, 한 번 나눌 때 걸리는 시간은 상수 시간 O(1)전체 분할은 트리 구조로 log₂n 단계까지 진행됨.✅ O(log₂n)정복두 배열을 순회하면서 합치는 과정 O(n)병합은 트리 구..
Algorithm & Time Complexity
·
📚 STUDY/📈 알고리즘
📌 알고리즘이란문제 해결을 위해 정해진 절차, 방법 or 과정을 나타내는 것. 계산 실행을 위한 단계적 절차 특성정확성수행성유한성효율성알고리즘 분류문제 해결 방식에 따른 분류분할 정복 알고리즘 (Divide-and-Conquer)그리디 알고리즘 (Greedy)동적 계획 알고리즘 (Dynamic Programming)문제에 기반한 분류정렬 알고리즘그래프 알고리즘기하 알고리즘특정 환경에 따른 분류병렬 알고리즘 (GPU)분산 알고리즘 (블록체인)양자 알고리즘📌 알고리즘과 성능시간 (빠르기)공간 (메모리)📌 시간 복잡도코드에서 연산의 횟수를 기반으로 표현한 실행 시간점근 표기법(Asymtotic notation)을 이용해 나타냄O (Big-O), Ω (Big-Omega), Θ (Big-Theta) 표기법이..
Diamond-Square Algorithm
·
📚 STUDY/📈 알고리즘
알고리즘 문제를 풀다가 Diamond-Square Algorithm 이라는 것을 발견하고, 문득 궁금해져서 포스팅을 하게 되었다.이 알고리즘은 height-map을 생성하는 방법에 사용되며, 1982년 SIGGRAPH에서 Fournier, Fusseell 및 Carpenter에 의해 처음 소개되었다고 한다. 문제에 나온 설명은 아래와 같다."이 알고리즘은 정사각형을 이루는 점 4개를 고르고 그 후에는 다음과 같은 과정을 거쳐 모양이 만들어진다.정사각형의 각 변의 중앙에 점을 하나 추가한다.정사각형의 중심에 점을 하나 추가한다. [그림]은 0단계(start)에서 2단계(2 iterations)까지 수행한 결과이다. 각 단계(N)가 계속해서 커져갈수록 점의 수가 커져간다."  이 알고리즘에 대한 설명이 많지..