본문 바로가기

Problem Solving

BOJ 2146 - 다리 만들기

문제 링크


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



문제 해결


1. BFS를 이용해서 각 대륙(0이 아닌 곳)에서 바다(0인 곳)와 인접해있는 곳에 새로운 번호를 부여.


  


2. 각 번호에서 0,1,자기 자신의 번호 이외의 값을 만날 때까지 다시 BFS.



주의할 점


BFS를 이용해서 새로운 번호를 부여하는 시간 복잡도는 O(N^2)이지만, 새로 번호를 부여받은 곳에서 다른 대륙까지의 BFS를 이용할 시 O(N^4)까지 올라갈 수 있으므로, N 제한이 작을 때만 사용해야한다. 





※ 정확하고 부드러운 태클은 언제나 환영입니다.

'Problem Solving' 카테고리의 다른 글

BOJ 11051 - 이항계수 2  (2) 2016.12.06
BOJ 1157 - 단어 공부  (0) 2016.11.29
BOJ 9933 - 민균이의 비밀번호  (0) 2016.11.21
BOJ 13567 - Robot (2016 대전 regionals)  (0) 2016.11.16
BOJ 13414 - 수강신청  (0) 2016.10.31