inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Java/Java] Thuật toán DFS mà ngay cả sinh viên giáo dục khai phóng cũng có thể hiểu được! - Giới thiệu

Tính số họ hàng (Baekjun 2644)

노드간 거리 계산

Đã giải quyết

145

nurugji

12 câu hỏi đã được viết

1

좋은 강의 감사합니다.

노드간의 거리를 계산하는 유형을 정리하실 때 "DFS의 인자에 count 변수를 전달하는 방식" 에 대해서 말씀해주셨습니다. 제가 이해한 바로는 사이클이 없는 구조, 즉 u와 v간의 경로가 하나만 존재할 경우에만 유효하다는 생각이 듭니다.

혹시 제가 오해한 부분이 있다면 알려주시길 바랍니다.

감사합니다.

 

java 코딩-테스트 알고리즘 dfs

Câu trả lời 1

1

gaebaljob

안녕하세요 nurugji님 🙂

말씀하신 대로 대부분의 경우에는 사이클이 없는 구조, 즉 트리 형태에서 주로 사용됩니다. 이 경우, 노드 u와 v 사이의 경로는 유일하기 때문에 count 변수를 이용해 거리를 쉽게 계산할 수 있습니다.

그러나 사이클이 존재하는 그래프에서도 몇 가지 추가 처리를 통해 이 방식을 사용할 수 있습니다. 예를 들어:

  1. 방문 여부(visited 배열)를 관리하여 이미 방문한 노드를 다시 방문하지 않도록 처리하면 사이클을 무시할 수 있습니다.

  2. DFS 시작점을 고정하고, 각 노드의 거리를 기준점(루트 또는 특정 노드)으로 계산한 후, 두 노드의 거리를 비교하여 결과를 구할 수 있습니다.

하지만 일반적으로 사이클이 있는 그래프에서는 BFS다익스트라 알고리즘과 같은 방법이 더 안정적이고 효율적일 수 있습니다.

따라서 사이클이 없는 경우에는 설명 드린 방식이 유효하지만, 사이클이 있는 경우에는 위와 같은 추가 처리를 고려해 주시면 더 정확한 결과를 얻을 수 있습니다.

혹시 추가로 궁금하신 부분이 있다면 알려주세요! 감사합니다 :)

dfs 부문을 이렇게 작성해도 되나요?

1

71

1

x랑 y를 거꾸로 쓰는 개념이 너무 헷갈립니다...

1

94

2

dfs 파라미터에 count를 넣는이유

1

62

2

graph 채울때 for문 설계 질문

1

71

2

질문있습니다.

1

71

1

다른 강의 언제나오나용?

1

92

2

안녕하세요, 혹시 다른문제도 여쭤볼 수 있을까요?

1

130

1

최근에 올린 질문, 코드블럭으로 공유드립니다!

1

143

1

질문이 있습니다. dfs 메서드에 order를 이렇게 구현하면 안되는 이유가 무엇인가요?

0

133

2

깊이우선탐색2 백준 24480 수업노트에...

1

115

1

백준 24479 문제 제출 결과 "틀렸습니다" 라고만 나와서 어떤 부분이 틀렸는지 잘 모르겠어요 피드백 부탁드립니다

1

249

3

graph 만들때 boolean[][] 으로 만드는 경우랑 int[][] 나 ArrayList<Integer>[] 로 만드는 기준이 어떻게 되나요?

1

201

2

graph를 2차원 배열 또는 List로 하는 기준을 어떤식으로 잡으면 좋을까요...?

1

224

1

강사님 안녕하세요! 깊이 우선 탐색 2 (백준 24480)에서 제공하는 풀이 코드에서 궁금한 점이 있어서 질문 드립니다!

1

325

3

촌수 계산

1

354

3

연결 요소의 개수 (백준 11724)

1

267

1

백준 24479 문제 시간 초과 질문 드려요

1

381

1

백준 실행시 틀립니다.

1

372

1

재귀대신 스택으로 구현하면 안될까요?

1

408

1

dfs 매개변수에서 y,x 를 왜 순서를 반대로 쓰셨는지 궁금합니다.

1

370

1

안녕하세요 11724번 질문드려요!

2

313

1

출력할 때 BufferedWriter? StringBuilder?

1

508

1

answer++ 위치 질문

1

254

1

code의 어디가 잘못된지 도저히 모르겠습니다..

1

269

1