El rascacielos más alto

Un perfil urbano está representado por una matriz rectangular de 0s y 1s. Cada 1 es una parte ocupada de un edificio.

Crea una función que devuelva la altura del rascacielos más alto: la mayor cantidad de 1s en cualquier columna.

Ejemplo

Program.TallestSkyscraper(new[]
{
    new[] { 0, 0, 0, 0 },
    new[] { 0, 1, 0, 0 },
    new[] { 0, 1, 1, 0 },
    new[] { 1, 1, 1, 1 }
}) ➞ 3