문제 (https://www.acmicpc.net/problem/1939)
이번 스터디 주제인 이분탐색으로 해결하려고 했으나 도저히 모르겠어서 크루스칼로 해결했다 🤯
중량의 최댓값을 구해야 하는 문제이므로 입력을 받은 후 간선의 크기를 기준으로 내림차순 정렬했다. 노드들을 합쳐가면서 매번 마지막 입력으로 들어온 두 섬이 연결되었는지 확인해야 한다. 연결이 되었다면, 연결된 모든 노드들 간의 간선들 중 가장 작은 값이 정답이 된다.
가장 작은 값이 정답인 이유는 중량제한을 초과하는 양의 물품이 다리를 지나게 되면 다리가 무너지게 되기 때문이다. 따라서 생성된 두 섬 사이의 경로들 중 가장 작은 값이 중량의 최댓값이 되는 것이다!
[소스코드]
'ALGORITHM > BOJ' 카테고리의 다른 글
[BOJ] 1238번 파티 (C++) (0) | 2022.01.17 |
---|---|
[BOJ] 2887번 행성 터널 (C++) (0) | 2022.01.05 |
[BOJ] 3020번 개똥벌레 (C++) (0) | 2022.01.05 |
[BOJ] 4386번 별자리 만들기 (C++) (0) | 2022.01.04 |
[BOJ] 11779번 최소비용 구하기 2 (C++) (0) | 2022.01.04 |