일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPQL
- SpringBoot
- 알고리즘
- Servlet
- 김영한
- 백준
- Exception
- transaction
- Android
- pointcut
- Thymeleaf
- Proxy
- QueryDSL
- 스프링
- 스프링 핵심 원리
- kotlin
- 그리디
- db
- AOP
- Spring Boot
- 자바
- JDBC
- spring
- Greedy
- 인프런
- springdatajpa
- java
- jpa
- 스프링 핵심 기능
- http
- Today
- Total
목록최단거리 (2)
개발자되기 프로젝트
2021.06.07 - [Java/알고리즘] - 최단경로 구하기 : Dijkstra algorithm 최단경로 구하기 : Dijkstra algorithm 시작 노드에서 전체 노드로 가는 최단 거리를 구하는 알고리즘. 이 알고리즘을 시행하면 시작노드부터 각 노드까지 최단 경로를 알 수 있다. 특징으로는 각 단계를 반복하면서 시작노드부터의 bsh-developer.tistory.com 앞서 한 노드로부터 각 노드 까지 최단 거리를 구하는 Diijkstra 알고리즘에 대해 알아봤다. 이번엔 알고리즘을 코드로 구현해보자. 크게 세 가지를 중점으로 작성했다. * 시작 노드를 기준으로 weight 행렬 작성하는 method - weight 배열은 djikstra 생성자에서 모두 inf(=9999)로 초기화. - ..
시작 노드에서 전체 노드로 가는 최단 거리를 구하는 알고리즘. 이 알고리즘을 시행하면 시작노드부터 각 노드까지 최단 거리를 알 수 있다. 특징으로는 각 단계를 반복하면서 시작노드부터의 각 노드까지 최단 거리를 계속 업데이트 한다. 현재 노드를 기준으로, 기존에 입력된 weight(현재 노드를 거치지 않음)가 더 작은지 현재 노드를 거치는게 weight가 작은지 비교해야한다. 즉 노드 v에 인접한 노드 w에 대하여 아래 조건이 성립하면 w에 대한 최단거리를 업데이트 한다. (원래 w로 가는 거리보다 v를 거쳐서 가는 거리가 가까우면 w가는 거리를 v거쳐서 가는 거리로 수정.) Yv + Cvw Yw = Yv + Cvw ex) Y1 + C1,2 < Y2 그 결과로 알고리즘이 종료되었을 때, 시..