*dfs로 섬들을 라벨링 (섬이 3개면 라벨이 3까지 나와야 한다)
*섬 전체적으로 돌면서 바다(0)이 나오면 그 지점을 중심으로 다리를 건설한다. (buildBridge)
*다리 건설은 bfs로 탐색하는데, 만약 섬(1)을 만났는데 나와 같은 라벨을 가지고 있으면 이상한 방향으로 향하고 있다는 것이기 때문에 (내 섬을 주변으로 돌고 있음 ) 방향을 바꿔주고 (continue),
만약 다른 라벨을 가지고 있는 섬을 만났다면 그곳까지의 거리를 반환한다.
'BOJ > C++' 카테고리의 다른 글
[BOJ] 알고스팟 (0) | 2019.10.24 |
---|---|
[BOJ] 달이 차오른다, 가자 (0) | 2019.10.23 |
[BOJ] 빙산 (0) | 2019.10.18 |
[BOJ] 성곽 (0) | 2019.10.14 |
[BOJ] 꽃길 (0) | 2019.10.10 |