Algorithm 공부 #19 - 트리 트리(tree) ● 노드와 에지로 연결된 그래프 ● 순환(cycle)구조를 가지고 있고, 1개의 루트 노드가 존재 ● 루트 노드를 제외한 모든 노드들은 단 1개의 부모 노드를 가짐 ● 트리의 부분 트리(서브 트리)역시 트리의 특징을 따름 ● 트리의 구성 요소 1. 루트 노드 : 트리에서 가장 최상단에 위치하는 노드 2. 부모 노드 : 두 노드 사이의 관계에서 상위 노드에 위치하는 노드 3. 자식 노드 : 두 노드 사이의 관계에서 하위 노드에 위치하는 노드 4. 리프 노드 : 자식 노드가 없는 가장 하위에 위치하는 노드 5. 노드 : 데이터의 index와 value를 표현하는 요소 6. 에지 : 노드와 노드의 연결 관계를 나타내는 선 7. 서브 트리 : 전체 트리에 ..
Algorithm 공부 #18 - 그래프(최소 신장 트리) 최소 신장 트리(minimum spanning tree) ● 그래프에서 모든 노드를 연결할 때 사용한 에지들의 가중치의 합을 최소로 하는 트리 ● 사이클이 포함되면 최소 가중치를 계산할 수 없으므로 사이클을 포함시키지 않는다 ● N개의 노드가 있으면 최소 신장 트리를 구성하는 에지의 개수는 N-1개 ● 최소 신장 트리 구현 방법 1. 에지 중심으로 저장하므로 에지 리스트로 그래프 표현, 사이클 표현을 위해 유니온 파인드도 함께 사용 2. 그래프를 가중치를 기준으로 오름차순 정렬 3. 가중치가 낮은 에지부터 연결하기(이때 바로 연결하지 않고 두 노드의 사이클 여부를 판단해야 함) 4. 사이클이 생성되지 않는다면 두 노드를 연결, 사이클이 생기면 연..
Algorithm 공부 #16 - 다익스트라 알고리즘 ✏️ 다익스트라 알고리즘(Dijkstra Algorithm)다익스트라 알고리즘은 그래프 상에서 한 정점에서 다른 정점들간의 최단 거리를 구할 수 있는 알고리즘이다.즉 도착 정점 뿐만 아니라 모든 다른 정점가지 최단 경로로 방문하며 각 정점까지의 최단 경로를 모두 찾을 수 있다.매번 최단 경로의 정점을 선택해 탐색을 반복한다고 생각하면 될 것 같다.시간복잡도는 O(ElogV)이며 이때 특징으로는 에지값이 모두 양수여야 한다.최단 거리 알고리즘은 이외에도 벨만-포드 알고리즘, 플로이드-워셜 알고리즘이 있는데 이 알고리즘들은후에 포스팅을 할 예정이다. ✏️ 구현 방법출발 노드와 도착 노드를 설정'최단 거리 테이블'을 초기화(출발 지점을 0으로, 나머지는..
Algorithm 공부 #15 - 그래프(위상 정렬) 위상 정렬(Topology Sort) ● 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘 ● 항상 유일한 값으로 정렬되지 않음 ● 진입 차수 : 자기 자신을 가리키는 에지의 개수 ● 원리 파악하기 노드는 5개이고 각 노드는 1,2,3,4,5 1번 노드는 2번과 3번 노드를 / 2번 노드는 4번과 5번 노드를 / 3번 노드는 4번 노드를 4번 노드는 5번 노드를 가리키는 그래프가 있다고 가정하기 진입차수 배열 D[N] 1 2 3 4 5 0 1 1 2 2 진입 차수 배열에서 진입 차수가 0인 노드를 선택하고 선택된 노드를 정렬 배열에 저장하기 그 후 인접 리스트에서 선택된 노드가 가리키는 노드들의 진입 차수를 1씩 빼주기 이 과정을 모든 노드의 ..
- Total
- Today
- Yesterday
- 투 포인터
- 우선순위 큐
- 알고리즘
- html
- 카운팅 정렬
- DFS
- 알고리즘 공부
- CSS
- Do it!
- 자바스크립트
- 유클리드 호제법
- c++ string
- 세그먼트 트리
- C++
- BFS
- 반복문
- js
- 이분 매칭
- 유니온 파인드
- 스프링 부트 crud 게시판 구현
- 자바
- 백준
- 에라토스테네스의 체
- C++ Stack
- DP
- 자료구조
- HTML5
- java
- 백준 풀이
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |