Ctrl K

Длина береговой линии

Лёгкая
Карта chart — прямоугольная сетка, где 1 — суша, 0 — вода. Каждая клетка — квадрат со стороной 1. За краем карты тоже вода. Верните общую длину береговой линии на карте: сколько сторон клеток суши граничат с водой (в том числе с озёрами внутри островов) или с краем карты. Стороны, по которым соприкасаются две клетки суши, в берег не входят.
Пример 1
chart=[[1, 1, 0], [1, 1, 0], [0, 1, 0]] → 10

Квадрат 2×2 даёт 8 единиц берега, клетка под ним добавляет свои 4, но сторона, общая с квадратом, — не берег, и она теряется у обеих клеток: 8 + 4 − 2 = 10.

Пример 2
chart=[[1, 1, 1], [1, 0, 1], [1, 1, 1]] → 16

Кольцо вокруг озера: 12 сторон снаружи и ещё 4 вокруг озера, итого 16.

Пример 3
chart=[[1, 0], [0, 1]] → 8

Клетки касаются только углами — это два отдельных острова по 4 стороны.

Ограничения
  • 1 ≤ число строк, число столбцов ≤ 100
  • chart[i][j] равно 0 или 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиИнструмент «Заливка» ЛёгкаяОсушение замкнутых прудов СредняяУчастки суши на карте СредняяРамка вокруг кляксы СложнаяСамый длинный подъём по карте Сложная
загружаем Python…
Вход
chart=[[1, 1, 0], [1, 1, 0], [0, 1, 0]]
Ожидается
10

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 75 тестов на сервере, включая скрытые.