일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 전송 계층
- Transport layer
- 임베디드
- boot sequence
- STL
- dp
- 자료구조
- C++
- Database
- BHS
- baekjoon
- Application Layer
- 네트워크
- 응용 계층
- swea
- 문제풀이
- Network
- leetcode
- 데이터베이스
- 다익스트라
- 백준
- 관계형 모델
- Embedded
- 프로그래머스
- 부트시퀀스
- 릿코드
- DB
- ps
- Djikstra
- BST
- Today
- Total
목록Djikstra (2)
BOBO's Note
https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1≤V≤20,000, 1≤E≤300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1≤K≤V)가 주어진다. www.acmicpc.net 풀이방법 다익스트라 알고리즘을 이용해 풀 수 있다. priority queue로 다음 vertex를 고르지 않으면 시간 초과가 발생한다. 두 vertex 사이에 여러 간선이 존재할 수 있으므로, 그 중 가중치가 최소인 간선만 저장하기 위해 adjacency list를 unordered_map을 이용해 변형했다. 각 vertex는 unordered_map을 갖는데, uno..
Dijkstra's Algorithm 다익스트라 알고리즘은 한 vertex에서 다른 vertex들로 가는 최단 경로를 구하는 알고리즘이다. cf) A* 알고리즘: 다익스트라에 휴리스틱을 도입해 더 빠르다. 다익스트라 알고리즘은 한 가지 가정 하에 적용할 수 있다. 모든 edge의 가중치가 양수이다. 다익스트라 알고리즘에서 출발점으로부터 가까운 vertex부터 방문하는 이유는 해당 vertex까지의 거리가 더이상 업데이트될 수 없기 때문이다. 이때 음수 가중치가 허용된다면 이미 방문한 vertex일지라도 더 작은 값으로 업데이트될 수 있어 다익스트라 알고리즘이 제대로 작동하지 않는다. 다익스트라 알고리즘은 distance 벡터와 visited 벡터를 갖는다. distance 벡터는 inf로, visited..