문제: 음료수 얼리기
자바 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class DFS {
public static int N,M;
public static int()() graph;
public void run() {
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine(), " ");
N = Integer.parseInt(stringTokenizer.nextToken());
M = Integer.parseInt(stringTokenizer.nextToken());
graph = new int(N)(M);
for(int i =0; i<N; i++){
String str = bufferedReader.readLine();
for(int j=0; j<M; j++){
graph(i)(j) = str.charAt(j)-'0';
}
}
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
int result = 0;
for(int i=0;i<N; i++) {
for(int j=0; j<M; j++){
if(dfs(i,j))
result+=1;
}
}
}
public boolean dfs(int x, int y){
if(x<0 || x>=N || y<0 || y>=M){
return false;
}
if(graph(x)(y) == 0){
graph(x)(y) = 1;
dfs(x - 1, y);
dfs(x + 1, y);
dfs(x, y - 1);
dfs(x, y + 1);
return true;
}
return false;
}
}