diff --git a/Basic_Of_Algorithm/src/test/bfs.java b/Basic_Of_Algorithm/src/test/bfs.java new file mode 100644 index 0000000..f7c49cd --- /dev/null +++ b/Basic_Of_Algorithm/src/test/bfs.java @@ -0,0 +1,55 @@ +package test; + +import java.util.Queue; +import java.util.LinkedList; + +public class bfs { + + public static void main(String[] args) { + + int[][]maps = {{1,0,1,1,1},{1,0,1,0,1},{1,0,1,1,1},{1,1,1,0,1},{0,0,0,0,1}}; + + int answer = 0; + + + int[][]temp = new int[maps.length][maps[0].length]; + + temp[0][0] = 1; + + Queue q = new LinkedList<>(); + + int [][] move = {{0,1},{1,0},{0,-1},{-1,0}}; + + q.add(new int[]{0,0}); + + while(!q.isEmpty()) { + + int [] cur = q.poll(); + + int cI = cur[0]; + int cJ = cur[1]; + + for(int d=0;d<4;d++) { + + int newI = cI + move[d][0]; + int newJ = cJ + move[d][1]; + + + if(newI<0||newJ<0||maps.length-1 2 -> 3 -> 8 -> 6 -> 5 -> 4 -> 7 -> + } + static String bfs(int start, int[][] graph, boolean[] visited) { + // 탐색 순서를 출력하기 위한 용도 + StringBuilder sb = new StringBuilder(); + // BFS에 사용할 큐를 생성해줍니다. + Queue q = new LinkedList(); + // 큐에 BFS를 시작 할 노드 번호를 넣어줍니다. + q.offer(start); + // 시작노드 방문처리 + visited[start] = true; + // 큐가 빌 때까지 반복 + while(!q.isEmpty()) { + int nodeIndex = q.poll(); + sb.append(nodeIndex + " -> "); + //큐에서 꺼낸 노드와 연결된 노드들 체크 + for(int i=0; i