본문 바로가기

알고리즘/팁

BFS 거리 구하기 팁

반응형
package test;

import java.util.LinkedList;
import java.util.Queue;

public class Test03_BFS_dist {
	static int N;
	static boolean[] visited;
	static int[][] map;
	static void bfs(int start) {
		Queue<Integer> q = new LinkedList<>();
		
		q.add(start);
		visited[start] = true;
		
		int dist = 0;
		while(!q.isEmpty()) {
			int size = q.size();
			
			for(int s = 0; s < size; s++) {
				int now = q.poll();
				
				for(int i = 1; i <= N; i++) {
					if(map[now][i]==1 && !visited[i]) {
						q.add(i);
						visited[i] = true;
					}
				}
			}
			
			dist++;
		}
		
	}
}

 

'알고리즘 > ' 카테고리의 다른 글

[Python] set 소소한 팁  (0) 2020.09.28
JAVA EOF 판단  (0) 2020.04.24
특정 구간에 0~9의 숫자 갯수 찾기  (0) 2020.03.18
next permutation  (0) 2020.03.10
바이너리 카운팅을 통해 부분집합 생성  (0) 2020.02.18