본문 바로가기

Alogorithm6

[JAVA] 너비 우선 탐색 (BFS, Breadth-First Search) 너비 우선 탐색 (BFS, Breadth-First Search)너비 우선 탐색이란루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법이다.즉, 깊게(deep) 탐색하기 전에 넓게(wide) 탐색하는 것이다.사용하는 경우: 두 노드 사이의 최단경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 선택한다.지구상에 존재하는 모든 친구 관계를 그래프로 표현한 후 Ash와 Vanessa 사이에 존재하는 경로를 찾는경우깊이 우선 탐색의 경우 - 모든 친구 관계를 다 살펴봐야 할지도 모른다.너비 우선 탐색의 경우 - Ash와 가까운 관계부터 탐색너비 우선 탐색(BFS)이 깊이 우선 탐색(DFS.. 2024. 5. 16.
[JAVA] 유클리드 호제법(Euclidean Algorithm) 유클리드 알고리즘과 호제법☞  유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다.☞  호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다.최대공약수(GCD: Greatest Common Divisor) & 최소공배수(LCM: Least Common Multiple)란?☞ 최대공약수(GCD: Greatest Common Divisor): 두 수의 공통된 '약수 중에서 가장 큰 수'를 의미한다.☞ 최소공배수(LCM: Least Common Multiple): 두 수의 공통된 '배수 중에서 가장 작은 수'를 의미한다.두 수의 최대공약수, 최소공배수 구하기최대공약수(GCD) 구현 방법1. 반복문으로 구현b가 0이 될.. 2024. 5. 16.