๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋„คํŠธ์›Œํฌ( Level 3)

by ์•ˆ์ฃผํ˜• 2021. 10. 20.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋„คํŠธ์›Œํฌ

๋„คํŠธ์›Œํฌ๋ž€ ์ปดํ“จํ„ฐ ์ƒํ˜ธ ๊ฐ„์— ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ปดํ“จํ„ฐ A์™€ ์ปดํ“จํ„ฐ B๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๊ณ , ์ปดํ“จํ„ฐ B์™€ ์ปดํ“จํ„ฐ C๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ

programmers.co.kr

 

์ฝ”๋“œ

#include <string>
#include <vector>

using namespace std;


void dfs(int x){

}

int graph[101][101];
int visited[101];

void dfs(int start, int n){
    visited[start]=1;
    for(int i=0; i<n; i++){
        if(graph[start][i]){
            if(!visited[i]) dfs(i, n);
        }
    }
}
int solution(int n, vector<vector<int>> computers) {
    int answer = 0;
    
    for(int i=0; i<computers.size(); i++){
       for(int k=0; k<n; k++){
           if(computers[i][k]]){
               graph[i][k] = 1;
               graph[k][i] = 1;
           }
       }
    }
    
    for(int i=0; i<n; i++){
        if(!visited[i]) answer++;
        dfs(i, n);
    }
    return answer;
}

 

ํ’€์ด

์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ๊ณ  ๋๋‚ธ๋‹ค์Œ ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๋Œ ๋•Œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ฐœ์ˆ˜๋ฅผ ์นด์šดํŠธํ•˜๋Š” ์‹์œผ๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€