본문 바로가기
알고리즘/DFS

[백준 1240] 노드사이의 거리 / 자바 / dfs (dfs구현연습)

by 순원이 2024. 8. 16.

#문제         

레벨: G5
알고리즘:  dfs

풀이시간: 
힌트 참조 유무:

https://www.acmicpc.net/problem/1240


#문제 풀이        

 

dfs + void 

    static void dfs(int current, int end, int distance) {
        if (current == end) {
            result = distance;
            return;
        }
        visited[current] = true;
        for (int[] next : tree[current]) {
            if (!visited[next[0]]) {
                dfs(next[0], end, distance + next[1]);
                if (result != 0) return;  // 목표 노드를 찾았으면 더 이상 탐색하지 않음
            }
        }
    }

 

dfs + 리턴 

    static int dfs(int current, int end, int distance) {
        if (current == end) return distance;
        visited[current] = true;
        for (int[] next : tree[current]) {
            if (!visited[next[0]]) {
                int result = dfs(next[0], end, distance + next[1]);
                if (result > 0) return result;
            }
        }
        return 0;
    }