인접한 데이터를 비교하며 자리를 바꾸는 방식으로, 구현은 쉽지만 속도는 느린 알고리즘이다. 시간 복잡도는 O(n²)이다.앞의 데이터를 정렬하면서 삽입 위치를 찾아 정렬하는 방식이다. 삽입 정렬 역시 구현은 쉽지만 속도는 느리다. 시간 복잡도는 O(n²)이다.최소 또는

이진 탐색은 정렬된 배열 또는 리스트에서 특정한 항목을 찾는 알고리즘으로, 매우 효율적인 탐색 방법 중 하나이다. 이진 탐색은 데이터를 반으로 나누어 탐색 범위를 절반씩 줄여나가는 방식으로 동작한다.탐색 범위의 중간 항목을 선택한다.중간 항목과 찾고자 하는 값을 비교한

투 포인터(Two Pointers) 알고리즘은 주로 배열 또는 리스트에서 특정한 조건을 만족하는 부분을 찾거나, 두 개의 포인터를 이용하여 특정한 연산을 수행하는 알고리즘 기법이다.두 개의 포인터 사용: 주어진 배열이나 리스트에서 두 개의 포인터를 사용하여 특정한 조건
그리디 알고리즘은 각 단계에서 최선의 선택을 하는 방식의 알고리즘입니다. 현재 상황에서 가장 좋아 보이는 선택을 하면서 최종적인 해답에 도달하는 방법입니다.탐욕적 선택매 순간마다 최선의 선택을 합니다.지역 최적해각 단계에서의 최적해가 전체적으로도 최적해일 것이라는 가정

분할 정복 알고리즘(Divide and Conquer Algorithm)은 주어진 문제를 작은 부분으로 나누고(divide) 각각을 해결한 후에 그 결과를 합쳐(conquer) 최종적인 해답을 찾아내는 알고리즘입니다. 이를 통해 전체 문제를 해결하는 것보다 작은 문제들

다익스트라 알고리즘(Dijkstra's Algorithm)은 단일 출발점에서 다른 모든 정점까지의 최단 경로를 찾는 최단 경로 알고리즘 중 하나입니다. 이 알고리즘은 음의 가중치를 갖는 간선이 없는 그래프에서 사용됩니다. 다익스트라 알고리즘은 주로 두 정점 사이의 최단

백트래킹은 "가능한 모든 경우의 수를 탐색하되, 불필요한 경우는 조기에 제외하여 탐색 범위를 줄이는 기법"입니다. 일반적으로 재귀 함수를 이용하여 구현됩니다. 재귀 호출을 하면서 각 단계에서 선택 가능한 모든 옵션을 시도하고, 조건에 맞지 않는 옵션은 배제하여 다음 단
최소 신장 트리(Minimum Spanning Tree, MST)는 그래프에서 모든 정점을 포함하면서 사이클이 없는 부분 그래프 중에서 간선의 가중치 합이 최소인 트리를 말합니다. 이 트리는 주로 네트워크 연결, 도로 건설, 회로 설계 등 다양한 분야에서 활용됩니다.주

다이나믹 프로그래밍은 주어진 문제를 하위 문제(subproblem)로 나누어 푸는 방법입니다. 중복된 계산을 피하기 위해 작은 하위 문제의 결과를 저장하고 재활용합니다. 문제가 최적 부분 구조(optimal substructure)와 중복되는 하위 문제(overlapp