連載の第 12~15 回では、モノとモノを繋ぐ「グラフ」を使ったアルゴリズムを解説しました。今回は少し話題を変え、アルゴリズムを使って解けるパズル的な問題を 1 つ紹介します。プログラミングを知らない人でも楽しめる問題になっておりますので、ぜひ解いてみてください。
第12回:アルゴリズムの基本用語 - 「グラフ」とは?
第13回:身近な「掃除」を例に考える、「深さ優先探索」とは?
第14回:最短経路を求めるのに便利な「幅優先探索」
第15回:重み付きグラフの問題を解く「ダイクストラ法」
問題
以下の 15 個のおもりがあります。重さの合計は4000gです。「最も重い箱」と「最も軽い箱」の重さの差ができるだけ小さくなるように、おもりを 4 つの箱に入れてください。
ただし、箱の重さは考えなくても良いものとします。
皆さんなら、どういう解法が思い付きますか。少し考えてみましょう。