2573번: 빙산 www.acmicpc.net 이 문제는 한 덩어리의 빙산이 주어질 때 이 빙산이 두 덩어리 이상으로 분리되는 최초의 시간(년)을 구하는 문제이다. 1년의 시간이 지났을 때 빙산 내 각 칸의 높이는 그 칸이 동서남북으로 이웃한 칸 중 빙산이 없는 칸의 수만큼 감소한다. 이 문제는 복잡해 보이지만 결국 구현해야 하는 것은 크게 현재 시점에서 빙산의 개수를 세는 함수와, 1년의 시간이 지났을 때 빙산의 변화를 구현하는 함수로 나눌 수 있다. 우선 현재 시점에서 빙산의 개수를 세는 것은 주어진 행렬을 바탕으로 그래프 탐색을 수행하면 쉽게 얻을 수 있다. 즉, 행렬 내 모든 entry를 순회하면서 값이 양수인 지점을 찾아 그 지점을 시작으로 너비 우선 탐색(또는 깊이 우선 탐색)을 시행해 그 지..