Problem : 경로 찾기
유형 : 플로이드 워셜, DFS
문제 해석
- 점에서 다른 점으로 가는 경로가 있는지를 확인하라.
문제 재해석
- 모든 점에서 다른 점들까리의 관계를 확인한다.
해결 전략
Floyd
를 통해 각 점들 간의 관계를 전부 확인한다.DFS
를 통해 그래프를 순회하여 확인한다.
설계, 구현
Floyd
- 갈 수 있는지 확인한다.
- 갈 수 없다면 다른 경로를 거쳐서 갈 수 있는지 확인한다.
- 다른 경로를 거쳐서 갈 수 있다면, 갈 수 있다고 표시한다.
DFS
- 한 점에서 부터, 연결된 모든 그래프릃 확인한다.
- 연결된 그래프에서 또 연결된 곳을 전부 방문해본다.
주의사항
DFS
구현시 시작점은 처음 시작점으로 고정 해야한다.- 왜냐 햐면,
한 점
에서의 모든 관계를 찾아가는 과정이기 때문이다.
디버깅
DFS
할때 인자를 잘못 주었었다.- 연결된 노드를 첫번째 인자로 주었었다.
코드
1 |
|
피드백
- 그래프 순회 문제를 갑자기 헷갈려 했다.
- 경험치의 문제다. 더 연습하자.