Free Lines Arrow
본문 바로가기
728x90

Algorithm/알고리즘 기본27

[Algorithm] Shortest Path 1: 개념 Shortest Path 최단거리 알고리즘에 대해서 알아보고 공부해 본다. 최단경로의 특징 가중치 그래프가 주어진다. 경로의 길이는 모든 에지의 가중치 합이다. 최단 경로의 부분경로도 최단경로다. 최단 경로 안에있는 모든 경로는 최단 경로이다. 최단경로는 싸이클을 포함하지 않는다. N 개의 노드가 있으면 순환이 없어야 하므로 엣지의 개수는 N-1 이다. 최단경로의 문제종류 single-source 하나의 출발 노드 s로부터 다른 모든 노드까지의 최단 경로를 찾는것 가장 유용한 방식이다. ex) dijkstra 알고리즘이 있다. single-destination 목적지가 주어지고 모든 노드로부터 목적지 까지의 최단거리 single-source 와 동일하다. single-pair 주어진 하나의 출발 노드 s.. 2021. 9. 28.
[Algorithm] Prim Prime 이란? MST를 만드는 알고리즘 중 하나입니다. Kruskal 과 다른점은 시작점을 기준으로 만들게 됩니다. Prime 알고리즘 S 집합: 현재까지 선택된 노드들 S - A: 선택 되지 않은 노드들 핵심 선택한 노드들과 선택되지 않은 노드들을 연결하는 엣지중 최소를 찾는 것이다. 순서 노드를 선택한다. 선택한 노드들(S) 과 연결된 제일 노드를 선택한다. - 단 가중치가 제일 작은 엣지를 선택한다. 가중치가 최소인 엣지 찾기 O(n) 으로 노드들을 찾을수 있다. 선택되지 않은 노드들에 2개의 값을 추가해준다. key: 현재노드와 선택된 노드들간의 최소 거리 π : 현재노드에 연결된 선택된 노드 그림으로보아야 이해가 빠르다. H 를 기준으로 설명하면 현재까지 선택된 노드들(A,B,C,I) 중 H.. 2021. 9. 14.
[Algorithm] Quick Sort Quick Sort 퀵소트란 분할 정복을 기반으로 만들어진 정렬방법이다. 1. 문제를 해결한다. 2. 문제들을 작은 문제로 분할한다. 3. 문제를 해결한다. 이렇게 큰문제를 해결하고 다시 작은 문제로 분할해 가면서 해결한다. Pivot 퀵정렬에는 pivot 이라는 개념이 존재한다. pivot은 정렬할때 기준을 잡아준다. Quick Sort 용어 Left: 가장 왼쪽 인덱스(왼쪽) Right: 가장 오른쪽 인덱스(오른쪽) Low: pivot 보다 큰값을 탐색하기 위한 인덱스 High: Pivot 보다 작은 값을 탐색하기 위한 인덱스 Quick Sort 동작과정 Low 를 증가시키면서 Pivot 보다 큰값을 찾는다. High 를 감소시키면서 Pivot 보다 작은 값을 찾는다. 찾은 값을 바꿔준다. 계속 반복.. 2021. 8. 30.
[Algorithm] 탐색문제 재귀로 구현해보기 왜 하는가? 매번 재귀 문제를 풀때 재귀로 구한 답을 전역변수로 처리 할 것인지 아니면 리턴된 값들을 더해서 최종답을 구할 건지 고민이 되기 때문이다. 그래서 두방법다 정리해봅니다. 문제 각각의 사막기지 위치에서 가장 가까운 우물을 찾으려고 한다. 기지는 1 로 되어 있고 우물은 0 으로 표기한다. 기지위치에 가장 가까운 우물의 거리를 표기한다. 예제 Case1 {1, 0, 0} {0, 1, 1} {0, 1, 1} 예제 설명 0,0 에서 가장 가까운 거리는 1 이다 왼쪽이 될수도 있고 아래 가 될수 있다. 2,2 위치 에서는 가장 가까운 우물은 0,2 또는 2,0 이된다. 그렇게 위치를 기록하면 다음과 같다. Case1 의 답 |1|0|0| |0|1|1| |0|1|2| Case2 {0,1,1,0} {1,.. 2021. 8. 16.
728x90
반응형