양 한마리... 양 두마리... - 11123

2025. 2. 12. 15:35PS/백준

문제

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