[JAVA] 너비 우선 탐색(BFS, Breadth-First Search)
·
코딩테스트/알고리즘
BFS: 너비우선탐색탐색과정시작하는 칸을 큐에 넣고 방문했다는 표시를 남김큐에서 원소를 꺼내어 그 칸에 상하좌우로 인접한 칸에 대해 3번을 진행해당 칸을 이전에 방문했다면 아무 것도 하지 않고, 처음으로 방문했다면 방문했다는 표시를 남기고 해당 칸을 큐에 삽입큐가 빌 때까지 2번을 반복처음 방문 했을 때만 방문 표시를 남기기 때문에 모든 칸이 큐에 1번씩 들어간다. 따라서 시간복잡도는 칸이 N개일 때 O(N)이다. 같은 원리로 행이 R개, 열이 C개인 2차원 평면을 BFS 탐색하면 시간복잡도는 O(RC)가 될 것이다. import java.util.*;public class Main { static int[][] board = { {1, 1, 1, 0, 1, 0, 0, 0, 0, 0},..