해안선 길이

면접 대비

시간 제한1초메모리 제한256 MB

요약
지도 바깥과 연결된 바다와 육지가 맞닿은 경계의 총 길이를 구하고 갇힌 호숫가는 제외합니다.
난이도

보통10점 중 4점

유형
BFS, 그래프, 행렬
정답자
아직 제출이 없습니다

문제

소테홀름은 여러 섬으로 이루어진 지방 자치체이다. 온실가스 배출 대책을 세우려고 주민들은 IPCC 기후변화 보고서를 읽었고, 자기 자치체에 가장 크게 작용하는 것은 해수면 상승이라고 판단했다. 주민들은 해안을 아끼기 때문에, 입장을 정하기 전에 해안선의 총 길이가 늘어나는지 줄어드는지부터 알고 싶어 한다. 어느 칸이 물에 잠기는지는 높이 지도로 이미 알아냈고, 남은 일은 해안선의 길이를 재는 것이다.

소테홀름의 지도는 N×MN \times M 격자로 주어진다. 각 칸은 한 변의 길이가 1 km인 정사각형이고, 물이거나 땅이다. 두 칸은 변을 맞대고 있을 때 서로 이어져 있다. 지도의 바깥은 모두 바다이다. 바다는 물만 거쳐 지도의 가장자리 밖과 이어지는 물을 말한다. 해안선은 땅과 바다가 맞닿은 모든 경계이고, 구해야 할 값은 그 총 길이이다. 땅으로 둘러싸인 호수의 물가와 그 호수 안에 있는 섬은 해안선에 들어가지 않는다.

그림에서 회색 칸은 땅, 흰색 칸은 물이고, 굵은 검은 선이 해안선이다. 이 그림은 첫 번째 예제 입력에 대응한다.

입력

첫째 줄에 두 정수 NN과 MM이 공백으로 구분되어 주어진다 (1≤N,M≤10001 \le N, M \le 1000).

다음 NN개의 줄에는 각각 길이가 MM인 문자열이 주어진다. 문자열은 0과 1로만 이루어져 있고, 0은 물, 1은 땅을 뜻한다.

출력

해안선의 총 길이를 km 단위 정수로 한 줄에 출력한다.

예제6

  1. 예제 1

    입력
    5 6
    011110
    010110
    111000
    000010
    000000
    
    예상 출력
    20
    
  2. 예제 2

    입력
    1 1
    0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1 1
    1
    
    예상 출력
    4
    
  4. 예제 4

    입력
    3 3
    111
    111
    111
    
    예상 출력
    12
    
  5. 예제 5

    입력
    3 3
    101
    010
    101
    
    예상 출력
    20
    
  6. 예제 6

    입력
    4 5
    00000
    00000
    00000
    00000
    
    예상 출력
    0