1260번: DFS & BFS (실버 2)
·
백준 (with JAVA)/그 외
1260번: DFS와 BFS (acmicpc.net) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1. 문제 설명 2. 입출력 조건 및 예제 입력 조건 (1) 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. (2) 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. (3) 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있으며, 입력으로 주어지는 간선은 양방향이..
BFS (Breadth First Search)
·
알고리즘 (with JAVA)/기본 알고리즘
1. 개념 설명 (1) BFS는 너비 우선 탐색으로 최대한 깊숙이 들어가서 탐색을 시작하는 DFS와는 달리 인접한 노드부터 먼저 탐색하는 방법이다. ( 아래 2. 과정을 통해 이해하자. ) (2) BFS는 재귀호출을 사용하는 DFS와는 달리, 자료구조 큐(Queue)를 사용하는 경우가 일반적이다. ( 그러므로, 3. 코드에서는 큐를 이용한 BFS를 보여줄 것이다. ) 2. 과정 - 실제로 수행되는 과정이며, 앞서 DFS(깊이 우선 탐색)과 BFS(너비 우선 탐색)을 비교하고 있다. 3. 코드 : BFS는 재귀를 사용하지 않고 일반적으로 큐를 통해 구현한다. ( 아래의 코드 (1)과 (2)는 위 그래프 그림을 기반으로 코드를 작성했다. ) (1) 인접 행렬 public class BFS_Matrix { s..