トラック
/
Roc
Roc
/
演習
/
パズルを組み立てる
パズルを組み立てる

パズルを組み立てる

中級

はじめに

親友がジグソーパズルを集め始め、そのコレクションの詳しいカタログを作りたいと思っています。ピースの総数、行と列の数、枠のピースと内側のピースの数、アスペクト比、パズルの形式といった情報を記録するためです。

二人の力を合わせても、1000ピースのジグソーパズルを1つ完成させるのに何時間もかかります。しかもそのあと、行と列を数え、残りの数値を手作業で計算しなければなりません。何千ピースもあるさらに大きなパズルは、今となってはとても手に負えそうにありません。「もっといい方法があるはずだ!」と叫んで、コンピューターの前に座り、問題を解くことにしました。

説明

ジグソーパズルについての情報が一部だけ与えられます。足りないピースを補いましょう。

情報が足りず詳細を完成できない場合、または与えられた項目が矛盾している場合は、ユーザーに通知する必要があります。

ジグソーパズルの完全な情報には、次の項目が含まれます:

  • pieces:ピースの総数
  • border:枠のピースの数
  • inside:内側(枠以外)のピースの数
  • rows:行の数
  • columns:列の数
  • aspectRatio:列と行のアスペクト比
  • format:パズルの形式で、portrait、square、landscapeのいずれかです

この演習では、ピースは正方形だと仮定してよいので、形式はアスペクト比から導けます:

  • アスペクト比が1より小さければportraitです
  • 1と等しければsquareです
  • 1より大きければlandscapeです

3つの例

portrait

縦長のジグソーパズルで、ピースは6つ、そのすべてが枠のピースで、内側のピースはありません。列は2つ、行は3つです。アスペクト比は0.666666...(2/3)です。

2×3のジグソーパズル

square

正方形のジグソーパズルで、ピースは9つ、中央にある1つを除いてすべて枠のピースで、その1つは内側のピースです。列は3つ、行は3つです。アスペクト比は1.0(3/3)です。

3×3のジグソーパズル

landscape

横長のジグソーパズルで、ピースは12、うち10が枠のピースで、2つが内側のピースです。列は4つ、行は3つです。アスペクト比は1.333333...(4/3)です。

4×3のジグソーパズル

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Roc Exercism

パズルを組み立てるを始める準備はできましたか?

Exercismに登録すれば、120個の演習、そして本物の人間によるメンタリングとともに、Rocを学んでマスターできます。すべて無料です。