Java 2

다익스트라 알고리즘(Dijkstra Algorithm) - JAVA

다익스트라 알고리즘 이란? 그래프에서 여러 개의 노드가 있을 때, 특정한 한 정점(=노드)에서 출발하여 다른 모든 정점으로 가는 최단 경로를 구하는 알고리즘입니다. 다익스트라 최단 경로 알고리즘은 '음의 간선' 즉, 가중치가 0보다 작은 값이 아닌 경우에 때 정상 동작합니다. 현실 세계에서의 길(간선) 음의 간선으로 표현되지 않아 다익스트라 알고리즘은 실제로 인공위성 GPS 소프트웨어 등에서 가장 많이 사용됩니다. 다익스트라 최단 경로 알고리즘은 기본적으로 그리디 알고리즘으로 분류됩니다. 왜냐하면 매번 '가장 비용이 적은 노드'를 선택해서 임의의 과정을 반복합니다. 동작과정 출발 노드를 설정 최단 거리 테이블 초기화 방문하지 않은 노드 중에서 최단 거리(가중치)가 가장 짧은 노드 선택 해당 노드를 거쳐 ..

알고리즘 정리 2022.03.23

Set, Map - JAVA

이전에 포스팅한 컬렉션프레임워크에서 추가로 정리하지않은 Set 과 Map 을 정리하여 포스팅을 시작하겠습니다. Set 인터페이스 - Set 인터페이스는 중복을 허용하지 않고 저장순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용됩니다. 대표적으로는 HashSet, TreeSet 이 있습니다. HashSet Set 인터페이스를 구현한 가장 많이 사용되기도 하는 대표적인 컬렉션 입니다. Set 인터페이스의 특징대로 HashSet 도 중복된 요소를 저장하지 않습니다. Hashset은 중복을 허용하지 않기 위해 객체를 추가하기 전에 기존에 저장된 요소와 같은 것인지 판단하기 위해 요소의 equlas() 와 hashCode()를 호출 합니다. 만약 객체를 비교한다고하면 equlas()와 hashCode()를 목..