인프런 커뮤니티 질문&답변

슬램덩ㅋ님의 프로필 이미지
슬램덩ㅋ

작성한 질문수

[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편

알고리즘 수업 - 깊이 우선 탐색 1 (백준 24479)

가중치가 1 이상일 경우~

해결된 질문

작성

·

307

1

백준 - 깊이우선탐색 강의에서 "모든 간선의 가중치가 1"이라고 되어 있는데 이게 정확히 무슨 의미 일지요? 가중치가 1 이상이면 이 가중치 정보를 그래프에 담아야 할까요??(구조체 사용)

답변 1

2

안녕하세요 :)

가중치가 1이라는 것은 두 정점 간의 거리가 1이라는 것을 의미합니다. 비유를 들어보자면 노드를 도시라고 생각하면 되고, 가중치는 그 도시들 간의 거리라고 생각하면 됩니다. 그래서 한 도시에서 다른 도시로 갈 때 항상 비용은 1이 된다는 것을 의미하고, 다른 의미로 "노드들 간에 이동하는 거리 혹은 비용은 동일하니 이것까지 고려할 필요는 없다" 정도로 정보를 제공한 것으로 보여요.

말씀하신 대로 가중치가 1이 아닌 경우에는 해당 가중치를 고려해서 계산해야 합니다. 이럴 때는 별도 구조체를 두기 보다는 graph라는 배열을 boolean 배열이 아닌 int 혹은 long 배열로 만드는 방식을 사용해요. 그래서 기존 boolean일 때는 "연결됐다 혹은 안됐다" 정보만 저장했다면, int 배열로 바꿀 경우 "연결됐을 때의 거리"를 배열 요소로 저장해두면 됩니다!

혹시 설명이 부족한 부분이 있으면 알려주세요!

오늘도 DFS 공부 화이팅입니다 :)

슬램덩ㅋ님의 프로필 이미지
슬램덩ㅋ
질문자

알기 쉽게 설명해주셔서 부족한 부분이 없네요~

감사합니다!!

슬램덩ㅋ님의 프로필 이미지
슬램덩ㅋ

작성한 질문수

질문하기