반응형
프로그래머스 깊이/너비 우선탐색(BFS/DFS) 네트워크
https://programmers.co.kr/learn/courses/30/lessons/43162
Union-Find인가? 하고 풀고있었는데.. 그냥 기본적인 탐색 개념만 필요.
class Solution {
static int[] visited;
public static void main(String[] args) {
int n=3;
int[][] computers = {{1, 1, 0}, {1, 1, 0}, {0, 0, 1}};
int count=0;
visited = new int[n];
for(int i=0; i<n; i++){
if(visited[i]==0){
bfs(n, i, computers);
count++;
}
}
System.out.println(count);
}
static void bfs(int n, int k, int[][] computers){
Queue<Integer> q = new LinkedList<>();
q.offer(k);
visited[k]=1;
while(!q.isEmpty()){
int now = q.poll(); //지금노드
visited[now] = 1;
//다음거
for(int i=0; i<n; i++){
if(computers[now][i]==1 && visited[i]==0){
q.offer(i);
}
}
}
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Heap] 절댓값 힙 (0) | 2019.01.27 |
---|---|
[Heap] 최소 힙, 최대 힙 (0) | 2019.01.27 |
[다익스트라] 최단경로 (0) | 2019.01.20 |
[DP] 제단 (0) | 2019.01.16 |
[DP] 구간 합 구하기5 (0) | 2019.01.15 |