A parte inferior da matriz

Este desafio trata de matrizes quadradas (com o mesmo número de linhas e colunas), como mostra o exemplo abaixo:

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

As entradas da linha diagonal do canto superior esquerdo até o canto inferior direito formam a diagonal principal da matriz. Neste caso, 1,5,9 formam a diagonal principal.

Escreva uma função que retorne a matriz obtida ao substituir as entradas acima da diagonal principal por 0s.

Por exemplo, para a matriz acima, você deve retornar:

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

Exemplos

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

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

lower_triang([
  [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]
]

Observações

  • Assim como nos exemplos, o tamanho das matrizes irá variar (mas elas sempre serão quadradas).
  • Em Álgebra Linear, matrizes com 0s acima da diagonal são chamadas de matrizes triangulares inferiores.