문제 출처
1. 문제설명
2. 알고리즘 설계
- MST 문제로 크루스칼 알고리즘을 사용했다.
- 오르막길은 0, 내리막길은 1로 주어지므로,
!
연산자를 사용해 입력을 반전시켜 주었다.
- 경로를
tuple<int,int,int>
에 모두 담아 w
가 작은 순, 큰 순으로 정렬을 해주고,
- 정렬할 때마다 union-find를 수행해서
w
값을 더해주면 된다.
- 작은 순으로 정렬된 건 최선의 경로이고, 그 반대는 최악의 경로이다.
w
의 합의 제곱의 차가 정답값이 된다.
3. 전체 코드