Dividir en bloques con suma máxima N

Published by Helen Yu in

Escribe una función que divida un arreglo en bloques de modo que la suma de cada bloque sea <= n. Comienza desde el lado izquierdo del arreglo y avanza hacia la derecha.

Ejemplos

divide([1, 2, 3, 4, 1, 0, 2, 2], 5)
➞ [[1, 2], [3], [4, 1, 0], [2, 2]]

divide([1, 0, 1, 1, -1, 0, 0], 1)
➞ [[1, 0], [1], [1, -1, 0, 0]]

divide([2, 1, 0, -1, 0, 0, 2, 1, 3], 3)
➞ [[2, 1, 0, -1, 0, 0], [2, 1], [3]]

Notas

  • El máximo del arreglo siempre será menor o igual que n.
  • Usa el enfoque codicioso para resolver el problema (por ejemplo, incluye tantos elementos como puedas en un bloque siempre que cumplas la restricción de suma).