티스토리 뷰

Algorithm/BOJ

14716 현수막

henry1214 2018. 2. 22. 18:51

https://www.acmicpc.net/problem/14716



DFS나 BFS를 이용하여 연결 요소(Connected Component)의 개수를 세준다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <cstdio>
 
int m,n,map[250][250],ans;
int dx[8]={-1,-1,-1,0,0,1,1,1};
int dy[8]={-1,0,1,-1,1,-1,0,1};
 
void dfs(int x,int y)
{
    map[x][y]=0;
    for(int i=0;i<8;i++)
    {
        int nx=x+dx[i],ny=y+dy[i];
        if(nx<0 || nx>=|| ny<0 || ny>=n) continue;
        if(map[nx][ny]==1) dfs(nx,ny);
    }
}
 
int main()
{
    scanf("%d %d",&m,&n);
    for(int i=0;i<m;i++for(int j=0;j<n;j++scanf("%d",&map[i][j]);
    for(int i=0;i<m;i++for(int j=0;j<n;j++)
        if(map[i][j]==1) ans++,dfs(i,j);
    printf("%d\n",ans);
    return 0;
}
cs


'Algorithm > BOJ' 카테고리의 다른 글

1939 중량제한  (0) 2018.02.23
1941 소문난 칠공주  (0) 2018.02.23
1213 팰린드롬 만들기  (0) 2018.02.22
7507 올림픽 게임  (0) 2018.02.20
1005 ACM Craft  (0) 2018.02.20
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday