중량제한

https://www.acmicpc.net/problem/1939


풀이

처음에는 입력된 경로의 중량 제한을 가장 큰 값으로 갱신해가며 BFS를 이용하여 해결하는 문제인지 알았다.
하지만 시간 초과가 발생했고 이분 탐색을 사용하여 해결할 수 있었다.

입력된 경로의 중량 제한을 가장 높은 값으로 갱신해가며 가장 작은 값과 큰 값을 저장하고 이분 탐색을 진행한다.
가장 작은 값과 큰 값을 갱신하는 방법에 BFS를 이용한다.

BFS를 수행하는 함수의 매개 변수는 세 가지이다.
첫 번째는 시작 지점, 두 번째는 도착 지점, 세 번째는 중량값이다.
시작 지점부터 BFS를 수행하는데 중량값을 고려해가며 진행한다.
최종적으로 도착 지점에 도착했다면 현재 중량값은 이동에 문제가 없는 것이므로 이분 탐색의 가장 작은 값을 갱신한다.
반대의 경우에는 큰 값을 갱신한다.