Count the Ships: A sea is represented as an N*N matrix where # represents a part of a ship and – represents water. All the ships are surrounded by water. Series of # which are connected together forms a ship. The # can be connected to another # in any of the surrounding 8 cells to form a ship. The program must print the number of ships in the given map.

Boundary Condition(s):
1 <= N <= 100

Input Format:
The first line contains N.
The next N lines contain N characters each.

Output Format:
The first line contains the count of the ship.

Example Input/Output 1:
Input:
6
------
-###--
-###--
------
-####-
-####-

Output:
2

Example Input/Output 2:
Input:
8
--#-----
--#-----
--#-----
-----#--
------#-
--#----#
#####---
--#-----

Output:
3

#include<stdio.h>
#include<stdlib.h>
void ship(int num,char arr[num][num+1],int c1,int c2){
    arr[c1][c2]='-';
    for(int ele=c1-1;ele<=c1+1;ele++){
        for(int foo=c2-1;foo<=c2+1;foo++){
            if(ele<0&&ele>=num&&foo>=num&&foo<0)
            continue;
            if(arr[ele][foo]=='#')
            ship(num,arr,ele,foo);
        }
    }
}

int main(){
    int num,ctr=0;
    scanf("%d",&num);
    char arr[num][num+1];
    
    for(int ele=0;ele<num;ele++)
    scanf("%s",arr[ele]);
    
    for(int ele=0;ele<num;ele++){
        for(int foo=0;foo<num;foo++){
            if(arr[ele][foo]=='#'){
                ctr++;
                ship(num,arr,ele,foo);
            }
        }
    }
printf("%d",ctr);
}
Amazing!
2
Love
4
Very helpful
0
Claps!
0

You may also like

More in:C