만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

현수막

면접 대비

시간 제한2초메모리 제한512 MB

요약
M×N 격자에서 1이 적힌 칸이 가로, 세로, 대각선으로 맞닿으면 같은 무리로 보고, 그 무리의 개수를 센다.
난이도

쉬움10점 중 3점

유형
그래프, DFS, BFS, 구현
정답자
아직 제출이 없습니다

문제

ANT가 처음으로 알고리즘 대회를 열면서 현수막을 내걸었다.

현수막 사진

지난 학기 영상처리 수업에서 배운 내용을 최대한 써 보고 싶은 혁진이는 이 현수막에 글자가 몇 개 있는지 알아내는 프로그램을 만들려고 한다.

혁진이는 우선 현수막에서 글자인 부분을 1로, 글자가 아닌 부분을 0으로 바꾸는 필터를 적용해 값을 만드는 데 성공했다.

그런데 혁진이는 이 값만 보고, 1인 칸이 상, 하, 좌, 우, 대각선으로 맞닿아 서로 이어져 있으면 그 덩어리 하나를 글자 한 개라고 생각했다. 즉 한 칸의 이웃은 그 칸을 둘러싼 여덟 칸이다.

혁진이가 필터를 적용해 만든 값이 주어질 때, 혁진이의 생각대로 프로그램을 구현하면 글자가 몇 개인지 출력하여라.

입력

첫째 줄에 현수막의 크기 MM과 NN이 주어진다. (1≤M,N≤2501 \le M, N \le 250)

둘째 줄부터 M+1M+1째 줄까지 현수막의 정보가 주어진다. 각 줄에는 한 행에 해당하는 NN개의 값이 공백으로 구분되어 주어지고, 각 값은 0 또는 1이다.

출력

혁진이의 생각대로 센 글자의 개수를 출력하여라.

예제1

  1. 예제 1

    입력
    8 19
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1 1 0
    0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0
    0 1 0 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0
    0 1 1 1 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0
    0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 0
    0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    
    예상 출력
    3