Dev.baelanche

[백준 11403] 경로 찾기 본문

Data Structure & Algorithm/PS - JAVA

[백준 11403] 경로 찾기

baelanche 2019. 4. 10. 19:47
반응형

 

이차원 배열을 짜서 DFS 를 수행하면 된다.

 

노드에 간선이 있을 경우 노드를 계속 타고 들어가며 방문한 노드 배열 정보를 1로 표시한다.

 

 

public class Main {

    static int n;
    static int a[][];
    static int path[][];
    static boolean visited[];
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        n = sc.nextInt();
        a = new int[n+1][n+1];
        path = new int[n+1][n+1];
        visited = new boolean[n+1];
        
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=n; j++) {
                a[i][j] = sc.nextInt();
            }
        }
        
        for(int i=1; i<=n; i++) {
            dfs(i);
            for(int j=1; j<=n; j++) {
                if(visited[j])
                    path[i][j] = 1;
            }
            Arrays.fill(visited, false);
        }
        
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=n; j++) {
                System.out.print(path[i][j] + " ");
            }
            System.out.println();
        }
        sc.close();
    }
    
    public static void dfs(int x) {
        for(int i=1; i<=n; i++) {
            if(!visited[i] && a[x][i] == 1) {
                visited[i] = true;
                dfs(i);
            }
        }
    }
}
반응형

'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글

[백준 8979] 올림픽  (0) 2019.04.10
[백준 2468] 안전 영역  (0) 2019.04.10
[백준 10026] 적록색약  (0) 2019.04.09
[백준 2583] 영역 구하기  (0) 2019.04.09
[백준 2667] 단지번호붙이기  (0) 2019.04.09
Comments