반응형
연결된 부분을 찾을 때 주로 DFS사용
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.next());
int m = Integer.parseInt(sc.next());
int[][] grid = new int[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
grid[i][j] = Integer.parseInt(sc.next());
}
}
int ans = 0;
for(int i =0; i < grid.length ; i++){
for(int j = 0; j < grid[i].length; j++){
if(grid[i][j] == 1){
ans+=1;
callDFS(grid,i,j);
}
}
}
// while(!check())
// {
// dfs(0, 0);
// for(int i=0;i<n;i++)
// {
// for(int j=0;j<m;j++)
// {
// if(arr[i][j] == 1 && visited[i][j] >= 2) arr[i][j] = 0;
// }
// }
// ans++;
// }
System.out.println(ans);
}
static public void callDFS(int[][] grid,int i,int j){
if(i<0 || i>= grid.length || j<0 ||j>= grid[i].length || grid[i][j] == 0)
return;
grid[i][j] = 0;
callDFS(grid,i+1,j);
callDFS(grid,i-1,j);
callDFS(grid,i,j-1);
callDFS(grid,i,j+1);
}
}
반응형
'Algorithm' 카테고리의 다른 글
DP_N*N 이동경로 최대값을 구하라(음수존재) (0) | 2021.11.07 |
---|---|
BruteForce_백준 1120 문자열 (0) | 2021.11.07 |
softeer 지도 자동 구축 (0) | 2021.09.23 |
Bubble Sort (0) | 2017.09.26 |
insertion sort (0) | 2017.07.03 |