問題の解法にはいくつかのアプローチがありますが、ここではシンプルで簡単な方法を紹介します。具体的な手順は以下の通りです。
-
入力値を処理します。与えられる入力は都市の数と宇宙ステーションの配置が含まれています。例えば、次のような形式です:
5 2 0 4
上記の例では、都市の数は5であり、宇宙ステーションは都市0と都市4に配置されています。
-
都市の数だけの配列を作成し、初期値をInfinityなどの大きな値に設定します。これは都市から最も遠い宇宙ステーションまでの距離を表すためです。
-
宇宙ステーションの位置を配列に反映させます。宇宙ステーションの位置には0などの特定の値を代入し、それ以外の都市の位置にはInfinityのままにします。
-
都市ごとに、宇宙ステーションまでの最短距離を計算します。これにはMath.abs()関数などを使用して、都市の位置と宇宙ステーションの位置の差を求めます。
-
最も遠い宇宙ステーションまでの距離が最大となる都市を特定します。これにはMath.max()関数を使用し、最大値を更新していきます。
-
最終的な結果を出力します。最も遠い宇宙ステーションまでの距離が最大となる都市が求められます。
以上がシンプルなアプローチです。実際のコード例を以下に示します。
function flatlandSpaceStations(n, c) {
let maxDistance = 0;
for (let i = 0; i < n; i++) {
let minDistance = Infinity;
for (let j = 0; j < c.length; j++) {
const distance = Math.abs(i - c[j]);
if (distance < minDistance) {
minDistance = distance;
}
}
if (minDistance > maxDistance) {
maxDistance = minDistance;
}
}
return maxDistance;
}
// 使用例
const cities = 5;
const stations = [0, 4];
const result = flatlandSpaceStations(cities, stations);
console.log(result); // 出力: 2
上記のコードは、都市の数と宇宙ステーションの配置を入力として受け取り、最も遠い宇宙ステーションまでの距離が最大となる都市を返します。この例では、都市の数が5であり、宇宙ステーションが都市0と都市4に配置されているため、最も遠い宇宙ステーションまでの距離は2となります。
以上が「Flatland Space Stations」問題のシンプルな解法とコード例です。このブログ投稿では、以下のような内容で解説することができます。
はじめに、Hackerrankの「Flatland Space Stations」という問題についての解法とコード例を紹介します。この問題では、宇宙ステーションが配置された都市の中で、どの都市から宇宙ステーションまでの最短距離が最大となるかを求める必要があります。
問題の解法にはいくつかのアプローチがありますが、ここではシンプルで簡単な方法を紹介します。具体的な手順は以下の通りです。
-
入力値を処理します。与えられる入力は都市の数と宇宙ステーションの配置が含まれています。
-
都市の数だけの配列を作成し、初期値をInfinityなどの大きな値に設定します。これは都市から最も遠い宇宙ステーションまでの距離を表すためです。
-
宇宙ステーションの位置を配列に反映させます。
-
都市ごとに、宇宙ステーションまでの最短距離を計算します。
-
最も遠い宇宙ステーションまでの距離が最大となる都市を特定します。
-
最終的な結果を出力します。
以上がシンプルなアプローチです。具体的なコード例を以下に示します。
function flatlandSpaceStations(n, c) {
let maxDistance = 0;
for (let i = 0; i < n; i++) {
let minDistance = Infinity;
for (let j = 0; j < c.length; j++) {
const distance = Math.abs(i - c[j]);
if (distance < minDistance) {
minDistance = distance;
}
}
if (minDistance > maxDistance) {
maxDistance = minDistance;
}
}
return maxDistance;
}
// 使用例
const cities = 5;
const stations = [0, 4];
const result = flatlandSpaceStations(cities, stations);
console.log(result); // 出力: 2
上記のコードは、都市の数と宇宙ステーションの配置を入力として受け取り、最も遠い宇宙ステーションまでの距離が最大となる都市を返します。この例では、都市の数が5であり、宇宙ステーションが都市0と都市4に配置されているため、最も遠い宇宙ステーションまでの距離は2となります。