サンタはできるだけ効率よく🎁プレゼントを配りたいと考えています。彼はプレゼントのリストを持っており、それぞれに重さがあり、さらに最大積載重量が決まっているそりを持っています。
プレゼントは順番通りに届けられ、その順番をサンタが変えることはできません。あるプレゼントが現在使っているそりに載り切らない場合、サンタはそのそりを出発させ、新しいそりを用意します。
あなたの課題は、すべてのプレゼントを届けるために必要な最小限のそりの数を計算する関数を書くことです。
ただし、ときどきそりに載せられないプレゼントが存在することがあるので、その場合はそのそりではそのプレゼントのパックを運べないため、null を返さなければなりません。
packGifts([2, 3, 4, 1], 5)
// 2 台のそり
// そり 1: 2 + 3 = 5
// そり 2: 4 + 1 = 5
packGifts([3, 3, 2, 1], 3)
// 3 台のそり
// そり 1: 3
// そり 2: 3
// そり 3: 2 + 1 = 3
packGifts([1, 1, 1, 1], 2)
// 2 台のそり
// そり 1: 1 + 1 = 2
// そり 2: 1 + 1 = 2
packGifts([5, 6, 1], 5)
// null
// 重さ 6 のプレゼントがあり、そりに載せられない
packGifts([], 10)
// 0 台のそり
// 届けるプレゼントがない