データ構造とアルゴリズム

1円、4円、6円の3種類の硬貨で8円を支払う。大きい硬貨から使えるだけ使う貪欲法で決めたときの枚数と、最少の枚数の関係として正しいものはどれか。

  1. A貪欲法でも最少の2枚になる
  2. B貪欲法では3枚になり、最少の2枚にならない
  3. C貪欲法では3枚になり、これが最少である
答えと解説を見る

正解:B. 貪欲法では3枚になり、最少の2枚にならない

貪欲法では、まず6円を1枚使い、残り2円を1円2枚で払うので3枚です。しかし、4円を2枚使えば2枚で払えます。このように貪欲法は、その時点で最もよい選択を積み重ねるだけなので、硬貨の組み合わせによっては最適になりません。動的計画法で「0円から8円までの各金額を払う最少枚数」を小さい金額から順に表にすれば、必ず最少の枚数が求まります。なお、1、5、10、50、100、500円のような日本の硬貨の組み合わせでは、貪欲法でも常に最少になります。

  • A. 貪欲法は最初に6円を選ぶので、4円2枚の組み合わせにはたどり着きません。
  • B. 正しい。貪欲法は6 + 1 + 1の3枚、最少は4 + 4の2枚です。
  • C. 4円2枚なら2枚で払えるので、3枚は最少ではありません。
この分野を解く 分野ページへ

関連する計算ツール

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データ構造とアルゴリズムのほかの問題

  1. 容量8のナップサックに、(重さ, 価値) が (2, 3)、(3, 4)、(4, 5)、(5, 6) の4つの品物から選んで入れる。各品物は1つずつしかなく、分割できない。重さの合計が8以下で、価値の合計の最大値はいくらか。
  2. 文字列の中からパターンを探すBM法(ボイヤー・ムーア法)の特徴として正しいものはどれか。
  3. 可変長配列で、容量が満杯のときに要素を追加すると、2倍の容量の領域を新たに確保して全要素をコピーする。容量1の空の配列に要素を1つずつ1,000個追加したとき、コピーされる要素の総数はいくつか。
  4. 要素数が多く、負荷率を0.5程度に保ったハッシュテーブルで、線形探査のオープンアドレス法が、チェイン法(連結リストでつなぐ方法)より速くなりやすい理由として最も適切なものはどれか。
  5. GPUのような並列処理の装置で並べ替えを行うときに、バイトニックソートのような、比較・交換の手順が決まったソート(ソーティングネットワーク)が使われることがある。その理由として正しいものはどれか。