#문제
레벨: 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;
}
'알고리즘 > DFS' 카테고리의 다른 글
[백준 2239] 스도쿠 / 자바 / dfs(백트래킹) (0) | 2024.09.01 |
---|---|
[백준 17090] 미로 탈출 / 자바 / dfs(dfs 코드구현 연습) (0) | 2024.08.16 |
[백준 18251] 내 생각에 A번인 단순 dfs 문제가 이 대회에서 E번이 되어버린 건에 관하여 (Easy) / 자바 / dfs + 카데인 알고리즘 (0) | 2024.08.12 |
[백준 11400] 단절선 / 자바 / dfs ** (0) | 2024.08.12 |
[백준 15681] 트리와 쿼리 / 자바 / dfs (0) | 2024.08.12 |