공부/C++

[C++] 프로그래머스 네트워크

굴러다니다니 2025. 5. 21. 16:48

이전에 C#으로 푼 방식 그대로 풀었다

https://school.programmers.co.kr/learn/courses/30/lessons/43162

#include <string>
#include <vector>

using namespace std;

void Find(const vector<vector<int>> computers, int start, vector<bool>& visited) {
    visited[start] = true;
    for (int i = 0; i < computers[start].size(); i++) {
        if (computers[start][i] == 1 && !visited[i]) {
            Find(computers, i, visited);
        }
    }
}

int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    vector<bool> visited(n, false);

    for (int i = 0; i < n; i++) {
        if (!visited[i]) {
            answer++;
            Find(computers, i, visited);
        }
    }

    return answer;
}
728x90
반응형