La parte inferior de la matriz

Este desafío trata sobre matrices cuadradas (con el mismo número de filas y columnas), como muestra el siguiente ejemplo:

[
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]

Las entradas de la línea diagonal desde la esquina superior izquierda hasta la esquina inferior derecha forman la diagonal principal de la matriz. En este caso, 1,5,9 forman la diagonal principal.

Escribe una función que devuelva la matriz obtenida al reemplazar las entradas que están por encima de la diagonal principal con 0s.

Por ejemplo, para la matriz anterior deberías devolver:

[
  [1, 0, 0],
  [4, 5, 0],
  [7, 8, 9]
]

Ejemplos

lowerTriang([
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
]) ➞ [
  [1, 0, 0],
  [4, 5, 0],
  [7, 8, 9]
]

lowerTriang([
  [5, 7],
  [7, 9]
]) ➞ [
  [5, 0],
  [7, 9]
]

lowerTriang([
  [1, 8, 8, 1],
  [2, 7, 7, 2],
  [3, 6, 6, 3],
  [4, 5, 5, 4]
]) ➞ [
  [1, 0, 0, 0],
  [2, 7, 0, 0],
  [3, 6, 6, 0],
  [4, 5, 5, 4]
]

Notas

  • Como en los ejemplos, el tamaño de las matrices variará (pero siempre serán cuadradas).
  • En álgebra lineal, las matrices con 0s por encima de la diagonal se llaman matrices triangulares inferiores.