알고리즘/문제풀이

[BFS] 네트워크

lipnus 2019. 1. 20. 16:49
반응형


프로그래머스 깊이/너비 우선탐색(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