[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/43162
[풀이]
단순한 BFS 문제.
[코드]
import java.util.*;
class Solution {
boolean[] visited;
public int solution(int n, int[][] computers) {
int answer = 0;
//네트워크의 개수를 return
visited = new boolean[n];
for(int i=0; i<n; i++){
if(visited[i]) continue;
answer += bfs(i, n, computers);
}
return answer;
}
public int bfs(int node, int n, int[][] computers){
Queue<Integer> q = new LinkedList<>();
visited[node] = true;
q.add(node);
while(!q.isEmpty()){
int u = q.poll();
for(int i=0; i<n; i++){
if(i==u) continue;
if(visited[i]) continue;
if(computers[u][i]==1 && computers[i][u]==1){
visited[i] = true;
q.add(i);
}
}
}
return 1;
}
}
'알고리즘 공부 및 문제 풀이 > 프로그래머스(PRO)' 카테고리의 다른 글
[pro] 프로그래머스 level3 42895 N으로 표현 (Java) - dp (0) | 2023.01.18 |
---|---|
[pro] 프로그래머스 level3 72415 카드 짝 맞추기 (Java) - BFS, DFS (0) | 2023.01.17 |
[pro] 프로그래머스 level3 42898 등굣길 (Java) - dp (0) | 2023.01.17 |
[pro] 프로그래머스 level3 43105 정수 삼각형 (Java) - dp (0) | 2023.01.13 |
[pro] 프로그래머스 level3 43163 단어 변환 (Java) - DFS (0) | 2023.01.13 |