[ 문제 ]
[ 접근방법 ]
연결된 음식물의 크기를 구하는 것이므로 BFS를 활용하였다.
[ 소스코드 ]
#include <iostream>
#include <queue>
using namespace std;
int n, m, k, r, c, res, cnt;
int map[105][105];
int dx[4] = {-1, 1, 0, 0};
int dy[4] = {0, 0, -1, 1};
queue<pair<int, int>> que;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m >> k;
for (int i = 0; i < k; i++)
{
cin >> r >> c;
map[r][c] = 1;
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
if (!map[i][j])
continue;
cnt = 1;
map[i][j] = 0;
que.push({i, j});
while (!que.empty())
{
pair<int, int> qf = que.front();
que.pop();
for (int l = 0; l < 4; l++)
{
pair<int, int> np = {qf.first + dx[l], qf.second + dy[l]};
if (np.first < 1 || np.first > n || np.second < 1 || np.second > m)
continue;
if (!map[np.first][np.second])
continue;
cnt++;
map[np.first][np.second] = 0;
que.push(np);
}
}
res = res < cnt ? cnt : res;
}
}
cout << res;
return 0;
}
'PS' 카테고리의 다른 글
[ 백준 / C++ ] 17175 : 피보나치는 지겨웡~ (0) | 2024.05.28 |
---|---|
[ 백준 / C++ ] 2018 : 수들의 합 5 (0) | 2024.05.24 |
[ 백준 / C++ ] 2529 : 부등호 (0) | 2024.05.22 |
[ 백준 / C++ ] 1431 : 시리얼 번호 (0) | 2024.05.20 |
[ 백준 / C++ ] 11055 : 가장 큰 증가하는 부분 수열 (0) | 2024.05.17 |