https://www.acmicpc.net/problem/1926
[난이도] Silver1
[유형] DFS
[풀이]
dfs 기본문제 입니다.
#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,a[501][501],dy[4]={-1,1,0,0},dx[4]={0,0,1,-1},cnt,ans;
int dfs(int y,int x){
a[y][x]=2;
int ret=1;
for(int i=0;i<4;i++){
int ny=y+dy[i], nx=x+dx[i];
if(ny<0||nx<0||ny>=n||nx>=m||a[ny][nx]!=1) continue;
ret+=dfs(ny,nx);
}
return ret;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++) scanf("%d",&a[i][j]);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]==1){
cnt++;
ans = max(ans,dfs(i,j));
}
}
}
printf("%d\n%d",cnt,ans);
}
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Silver1/1926.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver1] 1850 : 최대공약수 (C++) (0) | 2022.09.26 |
---|---|
[BOJ/백준][Silver1] 2504 : 괄호의 값 (C++) (0) | 2022.09.26 |
[BOJ/백준][Gold5] 21608 : 상어 초등학교 (C++) (0) | 2022.09.26 |
[BOJ/백준][Gold3] 2406 : 안정적인 네트워크 (C++) (0) | 2022.08.22 |
[BOJ/백준][Gold3] 18234 : 당근 훔쳐 먹기 (C++) (0) | 2022.08.22 |