0
0

More than 1 year has passed since last update.

【Python】2つの数値の合計

Posted at

実装内容

与えられた整数の配列 array から2つの数を選んで合計を targetSum とする組み合わせを見つける関数 twoNumberSum を作る。

実装

two_number_sum.py
def twoNumberSum(array, targetSum):
    storage = set(num for num in array)

    for num in array:
        target = targetSum - num
        if target in storage and target is not num:
            return [num, target]

    return []

# テスト
if __name__ == "__main__":
    array = [3, 5, -4, 8, 11, 1, -1, 6]
    targetSum = 10
    print(twoNumberSum(array, targetSum))

解説

  • twoNumberSum(array, targetSum):
    array: 数値のリスト(整数の配列)。
    targetSum: 目標の合計値(整数)。

  • storage = set(num for num in array):
    arrayの要素を集合 (set) に格納する。集合を使うことで、後で特定の要素を高速に検索できるようになる。

  • for num in array:
    配列 array の各要素 num に対して、以下の処理を繰り返す。

  • target = targetSum - num:
    num と targetSum の差を計算し、その結果を target に代入する。

  • if target in storage and target is not num:
    target が storage (配列 array の要素の集合) に存在し、かつ target が num と異なる場合に以下の処理を行う。

  • return [num, target]:
    num と target を含む2つの数のリストを返す。この2つの数の合計は targetSum となる。

  • return []:
    関数がループを終了しても2つの数の組み合わせが見つからなかった場合、空のリスト [] を返す。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0