맛있는감귤

BOJ : 1012 유기농 배추 본문

알고리즘/백준 알고리즘

BOJ : 1012 유기농 배추

맛있는감귤 2017. 1. 12. 17:16

문제 : https://www.acmicpc.net/problem/1012


github : https://github.com/JEONG-SEUNGWOOK/BOJ/blob/master/1012.cpp


일반적인 DFS, BFS 문제. DFS로 간단하게 해결.




#include <cstdio>
using namespace std;
int T,N,M,K;
bool map[51][51];
bool isVisited[51][51];
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};

void dfs(int x, int y){
    for(int i=0;i<4;i++){
        int nx=x+dx[i], ny=y+dy[i];
        if(nx>=0 && nx<N && ny>=0 && ny<M && !isVisited[nx][ny] && map[nx][ny]){
            isVisited[nx][ny]=true;
            dfs(nx,ny);
        }
    }
}
int main(){
    scanf("%d",&T);
    while(T--){
        int cnt=0;
        scanf("%d%d%d",&N,&M,&K);
        for(int i=0; i<N;i++){
            for(int j=0;j<M;j++){
                isVisited[i][j]=false;
                map[i][j]=false;
            }
        }
        while(K--){
            int a,b;
            scanf("%d%d",&a,&b);
            map[a][b]=true;
        }
        for(int i=0;i<N;i++){
            for(int j=0;j<M;j++){
                if(!isVisited[i][j] && map[i][j]){
                    dfs(i,j);
                    cnt++;
                }
            }
        }
        printf("%d\n",cnt);
    }
}


'알고리즘 > 백준 알고리즘' 카테고리의 다른 글

BOJ : 1149 RGB거리  (0) 2017.01.12
BOJ : 1094 막대기  (0) 2017.01.12
BOJ : 1085 직사각형에서 탈출  (0) 2017.01.12
BOJ : 1026 보물  (0) 2017.01.12
BOJ : 1009 분산처리  (0) 2017.01.12