깊이 우선 탐색 java 2

[BaekJoon] 백준 1012번 _ 유기농 배추 for JAVA _ DFS 알고리즘

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 얘도 그냥 전형적인 DFS/BFS 문제이다. DFS 연습중이라 DFS로 풀음 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Baek1012 { // DFS public static int count[] ..

알고리즘/백준 2022.01.21

[Algorithm] DFS 알고리즘 (깊이 우선 탐색)

DFS(Depth-First Search) 알고리즘은 깊이 우선 탐색 방법으로, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. DFS는 스택 자료구조 혹은 재귀 함수를 주로 이용하며 모든 노드를 탐색한다. 예시를 살펴보자 위와 같은 그래프가 있다. 시작 노드는 1이며, 방문 기준은 번호가 낮은 인접 노드라고 가정하자. 시작 노드 1에서 인접한 노드는 '2', '3', '8' 이다. 우리는 방문 조건에 따라 번호가 작은 2번 노드에 방문할 것이다. 이 때 스택에 1 - 2 를 차례로 담아준다. 노드 2에서 방문하지 않은 인접 노드 '7'에 방문해준다. 이 때 스택은 1 - 2 - 7 이 된다. 노드 7의 인접 노드 '6', '8' 중 작은 번호인 노드 6에 방문한다. 이 때 스택은 1 - 2 -..