알고리즘/DFS & BFS

백준 [1012] 유기농 배추

HJ39 2023. 1. 11. 13:08

dfs 문제를 안다면 쉽게 풀 수있다 

 

아주 쉽죠?ㅎㅎ

 

□ 소스 코드

#include <bits/stdc++.h>

int cabN, cabM, cabK;
int cabList[51][51]{0};

bool findWorm(int x, int y){
    
    if(x<0 || y<0 || x>=cabN || y>=cabM)
        return false;
    
    if(cabList[x][y] == 1){
        cabList[x][y] = 0;
        findWorm(x+1, y);
        findWorm(x-1, y);
        findWorm(x, y+1);
        findWorm(x, y-1);
        return true;
    }
    
    return false;
    
}

void cabbage(){
    int testCase;
    scanf("%d",&testCase);
    
    for(int tC=0;tC<testCase;tC++){
        int cabCnt = 0;
        scanf("%d%d%d",&cabN,&cabM,&cabK);
        
        for(int i=0;i<cabK;i++){
            int cabIn1,cabIn2;
            scanf("%d%d",&cabIn1,&cabIn2);
            cabList[cabIn1][cabIn2] = 1;
        }
        
        
        for(int i=0;i<cabN;i++){
            for(int j=0;j<cabM;j++){
                if(findWorm(i, j)== true){
                    cabCnt++;
                }
            }
        }
        printf("%d\n",cabCnt);
        
        memset(cabList, 0, sizeof(cabList));
    }
    
}

'알고리즘 > DFS & BFS' 카테고리의 다른 글

백준[1697] 숨바꼭질  (0) 2023.01.24
백준[2178] 미로 탐색  (0) 2023.01.11
백준[2667] 단지번호붙이기  (0) 2023.01.11
백준[1260] DFS와 BFS  (0) 2023.01.11
백준[2606] 바이러스  (0) 2023.01.10