鞍点

鞍点

初級

はじめに

日の出と日の入りを眺めるために、家の近くの森にツリーハウスを建てる計画を立てています。

地元の調査会社から、地図の長方形の区画ごとに、そこにあるすべての木の高さを示すデータを入手しました。 ツリーハウスにふさわしい木を見つけるために、地図上の各グリッドを分析する必要があります。

よい木とは、次の2つの条件をどちらも満たす木です。

  • 東と西にあるどの木よりも高いことです。日の出と日の入りをできるだけよく眺められるようにするためです。
  • 北と南にあるどの木よりも低いことです。木を登る量をできるだけ少なくするためです。

説明

ツリーハウスを建てられそうな木を探すのが、今回の課題です。

データ会社は、木の高さを表すグリッドという形でデータを提供してくれます。グリッドの行は東西方向を、列は南北方向を表します。

条件に合う木は、その行の中で最も大きく、かつその列の中で最も小さい木です。

グリッドによっては、条件に合う木が1本もないこともあります。1本だけのこともあれば、複数あることもあります。

次のグリッドには、候補となる木がちょうど1本あります。

    1  2  3  4
  |-----------
1 | 9  8  7  8
2 | 5  3  2  4  <--- potential tree house at row 2, column 1, for tree with height 5
3 | 6  6  7  1
  • 2行目の値は5、3、2、4です。最も大きい値は5です。
  • 1列目の値は9、5、6です。最も小さい値は5です。

つまり、[2, 1]の位置(行: 2、列: 1)は、ツリーハウスを建てるのに絶好のスポットです。

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

鞍点を始める準備はできましたか?

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