Home
Hong's Docs
Cancel
Preview Image

최단경로:플로이드-와샬

플로이드-와샬 알고리즘 플로이드-와샬 알고리즘은 그래프 이론에서 모든 노드 쌍 간의 최단 경로를 찾는데 사용되며, 특히 가중치가 음수 가중치를 처리할 수 있는 장점을 가진다. 시간 복잡도는 O(V^3)이며, 모든 노드 쌍 간의 최단 경로를 계산하는데 사용된다. 도로 네트워크, 통신 네트워크, 비행 경로 계획 등 다양한 응용 분야에서 사용 가능하다. ...

Preview Image

[자바 객체 지향의 원리와 이해] 3장 : 클래스 vs 객체

클래스 vs 객체 = 붕어빵틀 vs 붕어빵 나는 클래스와 객체를 붕어빵틀과 붕어빵으로 배웠다. 하지만 나의 생각은 이 책을 읽고난 후 달라졌다. 클래스란 무엇인가? 직역하자면 분류이다. 객체 지향을 이해하기 위해서는 먼저, 큰 그림을 생각해봐야 한다. 세상에 존재하는 모든 것은 사물, 즉 객체(Object)이다. 각각의 사물(객체)은 고유하...

Preview Image

최단경로:다익스트라

다익스트라 알고리즘 다익스트라 알고리즘은 하나의 출발점에서 모든 노드까지의 최단 경로를 찾는 알고리즘이다. 이 알고리즘은 가중치가 음수가 아닌 그래프에서 작동하며, 주로 길찾기 및 네트워크 라우팅 문제에 활용된다. 시간 복잡도는 일반적으로 O(V^2)시간 복잡도를 가지지만, 최소 힙(우선 순위 큐)를 사용하면 O(ElogV)로 최적화할 수 있다. V는...

Preview Image

파라메트릭 서치란?

파라메트릭 서치(Parametric Search) 파라메트릭 서치는 최적화 문제를 결정 문제로 변환하여 해결하는 알고리즘 기법이다. 이것을 쉽게 말하면 구하고자 하는 값의 범위가 주어질 때, 그 중 하나의 값을 하나 잡고 조건을 만족하는지 묻는 것이다. 파라메트릭 서치는 이진 탐색과 연관이 깊어 이진 탐색을 기반으로 하면서도 다양한 응용 분야에서 활용...

Preview Image

Binary Search

이진 탐색(Binary Search) 이진 탐색은 정렬된 배열에서 원하는 항목을 빠르게 찾는 알고리즘이다. 반복하여 배열을 반으로 나누고 비교하면서 찾고자 하는 값이 배열에서 발견될 때까지 계속 반복한다. 이진 탐색은 평균적으로 O(log n) 시간 복잡도를 가지므로 대용량 데이터에서 빠르게 검색이 가능하며, 정렬에 드는 비용을 감수하고 검색시간을 절...

Preview Image

Quicksort, Mergesort, Heapsort

퀵 정렬(Quicksort) 퀵 정렬은 분할 정복 알고리즘으로, 배열을 분할하고 각 부분을 정렬하여 전체 배열을 정렬한다. 최선의 경우 평균 O(n log n)이지만 최악의 경우 O(n^2)이다. 빠른 정렬 알고리즘 중 하나로, 추가 메모리가 거의 필요하지 않지만 최악의 경우 시간 복잡도가 높다. 퀵 정렬 코드 def quicksort(lst,...

Preview Image

Bubble, Selection, Insertion

버블 정렬(Bubble Sort) 간단하고 이해하기 쉬운 정렬 알고리즘으로, 최선, 평균, 최악의 모두 O(n^2)의 시간 복잡도를 가진다. 구현이 간단하며 작은 배열에 대해 효과적일 수 있지만, 대규모 배열에 대해 비효율적이며, 다른 정렬 알고리즘보다 느리다. 버블 정렬 코드 def bubble_sort(nums): for i in range...

Preview Image

heap

힙(heap)이란? 힙은 이진 트리 기반의 데이터 구조로, 각 노드는 특정한 조건을 만족시키는 조직된 형태의 데이터를 저장한다. 힙은 주로 다음과 같은 두 가지 주요 속성을 갖는다. 완전 이진 트리 힙은 완전 이진 트리 구조를 갖는다. 즉, 마지막 레벨을 제외한 모든 레벨에서 노드가 가득 차 있고, 마지막 레벨에서는 노드가 왼쪽부터 순차적으로 채워진...

Preview Image

이진 탐색 트리(BST)

이진 탐색 트리(Binary Search Tree, BST) 이진 탐색 트리는 항상 정렬된 상태를 유지하는 자료구조이다. 이진 탐색 트리의 정의 모든 노드의 키는 중복이 없는 유일한 키를 가진다. 왼쪽 서브 트리는 부모 기준 노드보다 작은 값으로 이루어져 있다. 오른쪽 서브 트리는 부모 기준 노드보다 큰 값으로 이루어져 있다. ...

Preview Image

[Git] To push the history leading to the current (detached HEAD)

에러 상황 git push를 할 때마다 나타나는 에러이다. git checkout으로 지난 커밋내역으로 이동했다가 이동한 커밋부터 수정했더니 생긴 에러다. 새로운 커밋을 만나면 항상 HEAD와 main이 함께 있지 못하게 되어 에러가 나타나는 것이다. git push origin HEAD:<name-of-remote-branch>하면 gi...