https://www.acmicpc.net/problem/1520단순한 BFS, DFS 로 진행하면 시간초과가 발생합니다.그래서 한번에 모든 길을 찾는게 아닌 중간중간 가능한 경로를 합해주며 진행하겠습니다. A - B - C - D - E - FA - B - G - D - E - F 두 경로로 이동이 가능하다고 가정하면D 의 지점에서 D 까지 도달하는 경로를 병합한 뒤, D 에서 F 까지는 한 번만 탐색하는 방식입니다. 해당 방식을 구현하기 위해 DFS 와 heapq 를 사용했습니다.D 에서 탐색을 시작하기 전에 D 보다 높은 지점에서의 이동 먼저 계산하기 위함입니다.그러므로 heapq 안의 구성요소는 [높이, [인덱스]] 가 됩니다. 일반적으로 heapq 는 최소힙을 기본으로 하기 때문에 최대힙을 사용..