見出し画像

Python(アルゴリズム)

今回はPythonを使用した全探索の処理を勉強したので共有したいと思います。

問題

10000円札と、5000円札と、1000円札が合計でN枚あって合計金額がY円となりました。

その場合の枚数を求めてください。
条件を満たさない場合は-1,-1,-1と出力します。

入力例
9 45000

出力例
4 0 5

下記がコードになります。

def Sample4():
    """
    お金の枚数を計算する。
    """
    N, Y = map(int, input().split()) # 入力する。Nが枚数Yが金額
    a, b, c = -1-1-1
    # 全探索
    for i in range(N + 1):
        for j in range(N + 1):
            n = N - i - j
            if n < 0 or n > N: # nが0以上N以下でない場合はスキップ
                continue
            if 10000 * i + 5000 * j + 1000 * n == Y: # 条件を満たすのか確認する。
                a, b, c = i, j, n
    print(f'1万円札{a}枚5千円札{b}枚千円札{c}枚')
Sample4()

以上になります。

この記事が気に入ったらサポートをしてみませんか?