펭로그

[C++] HackerRank 해커랭크 Connected Cells in a Grid 본문

Study/PS(Algorithm)

[C++] HackerRank 해커랭크 Connected Cells in a Grid

노랑펭귄 2018. 3. 16. 16:57

문제링크 : https://www.hackerrank.com/challenges/connected-cell-in-a-grid



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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <bits/stdc++.h>
using namespace std;
 
int mat[10][10];
int visited[10][10= {0,};
int max_size = 0;
 
int find(int row, int col){
    if(!mat[row][col] || visited[row][col])
        return 0;
    visited[row][col] = 1;
    int size = 1;
    int x = row;
    int y = col;
    
    for(int i = -1; i <= 1; i++)
        for(int j = -1; j <= 1; j++){
            x = row + i;
            y = col + j;
            
            size += find(x, y);
        }
    return size;
}
 
int main() {
    int n, m;
    cin >> n;
    cin >> m;
    
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            cin >> mat[i][j];
    
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            if(mat[i][j] || !visited[i][j]){
                max_size = max(find(i,j), max_size);
            }
    cout << max_size;
    return 0;
}
cs


Comments