문제는 다음과 같다. 그래프의 각 node가 연결된 정보가 주어졌을 때, source_node에서 destination_node로 탐색 가능한지 파악하는 것이다. 이는 DFS와 BFS로 모두 풀이 가능하나, 나는 DFS로 풀이하였다.
나의 풀이는 다음과 같다.
주어진 edges 리스트를 참고하여 그래프를 구성한다.
dfs 함수를 만든다. ⇒ visited 함수와 함께
만약 연결되있고, 방문하지 않은 node라면 visited를 True 처리하고 dfs 재귀함수를 돌린다.
dfs(source)로 탐색한 후, visited[destination]을 조회하여, True인지 False인지 파악한다.
⇒ 나는 원초적으로 작성하였으나, 생각해보니 dfs 탐색 도중 destination을 만날 때, return 값을 주는 것이 더 효율적인 것 같다.
오늘은 기본적인 탐색 문제여서 금방 풀이하였다. 하지만 습관이 무서운게 더 효율적인 방법이 있음에도 그냥 작성하였다. 앞으론 이 부분도 주의하자.
무너지지 말자.