본문 바로가기

dfs

(3)
[JAVA] DFS Flood fill 구현 class Solution { @Test public void solution() { // 5, 5 영역 int[][] board = new int[][] { {0,0,0,0,0}, {0,0,0,1,1}, {0,0,0,1,0}, {1,1,1,1,0}, {0,0,0,0,0} }; DFS_Flood_Fill(board, 1, 1, 3); for(int i = 0; i < board.length; i++) { for(int j = 0; j < board[i].length; j++) { System.out.print(board[i][j] + " "); } System.out.println(""); } } /** * 다차원 배열의 특정 칸과 연결된 영역을 검색하는 알고리즘. * 그림판의 채우기와 같은 기능. * ..
[JAVA] DFS 재귀 호출 구현 import java.util.*; class Solution { /** * * @param n - 노드의 수 * @param graph - 노드간의 간선이 표현된 그래프 */ @Test public void solution() { int n = 5; int[][] graph = new int[5][6]; graph[0][1] = graph[1][0]= 1; graph[0][2] = graph[2][0] = 1; graph[1][3] = graph[3][1] = 1; graph[1][4] = graph[4][1] = 1; graph[2][4] = graph[4][2] = 1; graph[3][4] = graph[4][3] = 1; dfs(0, graph, new boolean[5]); } public v..
[JAVA] DFS Stack 구현 import java.util.*; class Solution { int n = 5; /** * 스택 구조이므로 DFS의 반대 순서로 동작한다. (간선에 방향이 없어야하며, 동일하게 연결되어야한다.) * @param n - 노드의 수 * @param graph - 노드간의 간선이 표현된 그래프 */ @Test public void solution() { int[][] graph = new int[n][6]; graph[0][1] = graph[1][0]= 1; graph[0][2] = graph[2][0] = 1; graph[1][3] = graph[3][1] = 1; graph[1][4] = graph[4][1] = 1; graph[2][4] = graph[4][2] = 1; graph[3][4] = ..