양 한마리... 양 두마리... - 11123
2025. 2. 12. 15:35ㆍPS/백준
문제
https://www.acmicpc.net/problem/11123
느낀점
기본 dfs 문제로 접근 가능
풀이
#include <iostream>
#include <vector>
#include <string>
void dfs(int i, int j, std::vector<std::vector<char>> &map){
if(i < 0 || i >= map.size() || j < 0 || j >= map[0].size() || map[i][j] == '.'){
return;
}
map[i][j] = '.';
dfs(i-1, j, map);
dfs(i+1, j, map);
dfs(i, j-1, map);
dfs(i, j+1, map);
}
int main()
{
int T;
std::cin >> T;
for (int i = 0; i < T; i++)
{
int W, H;
std::cin >> H >> W;
std::vector<std::vector<char>> map(H, std::vector<char>(W));
for (int i = 0; i < H; i++)
{
std::string line;
std::cin >> line;
for (size_t j = 0; j < line.size(); j++)
{
map[i][j] = line[j];
}
}
int count = 0;
for (int i = 0; i < H; i++)
{
for (int j = 0; j < W; j++)
{
if (map[i][j] == '.')
{
continue;
}
dfs(i, j, map);
count++;
}
}
std::cout << count << "\n";
}
return 0;
}
'PS > 백준' 카테고리의 다른 글
결혼식 - 5567 (0) | 2025.02.12 |
---|---|
점프 점프 - 11060 (0) | 2025.02.12 |
그대, 그머가 되어 - 14496 (0) | 2025.02.12 |
A->B - 16953 (0) | 2025.02.12 |
팰린드롬 만들기 - 1254 (0) | 2025.02.12 |