グループ1とグループ2に分けたときに、合計値の差が最も小さくなる分け方を求めるという問題ですが、仮に合計の小さい方をグループ1とすることにすると、グループ1の合計は全体の合計の半分以下となります。
ここで、グループ1の選び方に注目すると、「全体の合計の半分以下の範囲で、グループ1の合計を最大いくつにすることができるか」という問題に帰着できます。

数字群を二つのグループに分けて、それぞれの合計値の差が最小になるアルゴリズムを知りたい。

このように課題を理解しやすい(=コードを書きやすい)内容に再定義する能力すごく大切だなと思った。