Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】LeetCode 2221 — Find Triangular Sum of an Array Problem Statement (a.k.a.

2025年09月30日に「Medium」が公開したITニュース「LeetCode 2221 — Find Triangular Sum of an Array Problem Statement (a.k.a.」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

プログラミング学習サイトLeetCodeの課題「2221 — Find Triangular Sum of an Array」の解説記事。配列の三角和を求める問題の解き方や考え方がMediumで詳しく紹介されている。

ITニュース解説

「LeetCode 2221 — Find Triangular Sum of an Array」という問題は、プログラミングの学習プラットフォームであるLeetCodeに掲載された一題であり、配列の要素を特定のルールに従って操作し、最終的に一つの値に集約するアルゴリズムを求めるものだ。システムエンジニアを目指す初心者にとって、このような問題に取り組むことは、基本的なプログラミングスキル、論理的思考力、そして問題解決能力を養う上で非常に有用である。

まず、LeetCodeとは何かについて触れておこう。これは、世界中のプログラマーがアルゴリズムやデータ構造に関する問題を解き、コーディングスキルを向上させるためのオンラインプラットフォームだ。企業が採用試験で利用することもあり、実践的なプログラミング能力を測定する場としても広く知られている。このプラットフォームで問題に取り組むことは、技術力を高めるだけでなく、複雑な課題を効率的に解決するための思考プロセスを学ぶ良い機会となる。

今回取り上げる「Triangular Sum」の問題は、具体的には次のようなプロセスを要求すると考えられる。与えられた数値の配列があるとして、その配列の要素数を徐々に減らしながら、最終的にたった一つの数値が残るまで特定の計算を繰り返すのだ。その計算とは、隣り合う二つの数値の和を取り、その和の「一の位」だけを新しい数値として採用するというものだ。この操作を、新しい配列の要素数が一つになるまで繰り返していく。

例えば、初期の配列が [1, 2, 3, 4, 5] だったとしよう。 最初のステップでは、この配列から新しい配列を生成する。

  • 最初の要素 1 と隣の 2 を足すと 3 となる。
  • 次の要素 2 と隣の 3 を足すと 5 となる。
  • さらに次の 34 を足すと 7 となる。
  • 最後の 45 を足すと 9 となる。 これにより、新しい配列 [3, 5, 7, 9] ができる。元の配列より要素数が一つ減っていることに注目したい。

次に、この新しい配列 [3, 5, 7, 9] に対して、同じ操作を繰り返す。

  • 35 を足すと 8 となる。
  • 57 を足すと 12 となる。ここで「一の位」だけを採用するので 2 を取る。
  • 79 を足すと 16 となる。同様に「一の位」の 6 を取る。 これで、さらに新しい配列 [8, 2, 6] が生成された。

このプロセスを、配列の要素が一つになるまで続ける。

  • [8, 2, 6] から次の配列を生成する。

    • 82 を足すと 10 となるので、一の位は 0
    • 26 を足すと 8 となるので、一の位は 8。 結果として、配列 [0, 8] ができる。
  • 最後に、配列 [0, 8] から次の配列を生成する。

    • 08 を足すと 8 となる。一の位は 8。 これにより、最終的に配列 [8] が残る。この 8 が問題の求める「Triangular Sum」となるのだ。

このような問題を解くことで、システムエンジニアを目指す初心者は様々なスキルを習得できる。 第一に、配列の操作に習熟できる。配列の要素に順番にアクセスし、新しい値を計算して別の配列に格納するという一連の作業は、データ処理の基本中の基本だ。 第二に、ループ処理の設計が重要になる。配列の要素数が一つになるまで繰り返し同じ操作を行う必要があるため、while ループや for ループをどのように適切に使うかを考える練習になる。 第三に、**モジュロ演算(剰余演算)**の活用だ。「一の位」を求めるという要件は、数値を 10 で割った余り (% 10) を使うことで実現できる。これは、数値のパターンを抽出する際によく用いられるテクニックだ。 第四に、アルゴリズム的思考が鍛えられる。複雑に見える問題を、一つ一つの小さなステップに分解し、それぞれのステップでどのような計算や処理が必要かを論理的に考える能力が身につく。 最後に、この問題は「インプレースで配列を更新するか、新しい配列を生成するか」という設計上の選択肢も示唆している。つまり、メモリの使用効率やコードの簡潔さを考慮しながら、最適な実装方法を検討する視点も養われる。

システムエンジニアの仕事は、与えられた要件に基づいてシステムを設計し、実装することだ。その過程では、効率的なアルゴリズムを考案したり、大量のデータを適切に処理したりする能力が常に求められる。LeetCodeのようなプラットフォームで「Triangular Sum」のような問題を解く経験は、これらの実践的なスキルを磨き、論理的な思考力を高めるための貴重な一歩となるだろう。

関連コンテンツ