오늘의 알고리즘

[C++]깊이/너비 우선 탐색(DFS/BFS) 네트워크(프로그래머스 3레벨)

하늘하늘 . 2022. 3. 4. 15:47
 
#include <string>
#include <vector>
 
using namespace std;
 
void DFS(vector<vector<int>>& triangle, int iX, int iY)
{
    // 방문
    triangle[iX][iY] = 0;
 
    for (int i = 0; i < triangle[iX].size(); ++i)
    {
        // X축을 계산
        if (triangle[iX][i])
            DFS(triangle, iX, i);
 
        // Y축을 계산
        if (triangle[i][iY])
            DFS(triangle, i, iY);
    }
 
    return;
}
 
 
int solution(int n, vector<vector<int>> triangle)
{
    int answer = 0;
 
    for (int i = 0; i < n; ++i)
    {
        for (int j = 0; j < n; ++j)
        {
            if (triangle[i][j])
            {
                ++answer;
                DFS(triangle, i, j);
            }
        }
    }
 
    return answer;
}

왜 3렙인가 싶기도 하고 DFS/BFS만 알면 바로 풀 수 있을 듯?

댓글수0