AtCoder Beginner Contest 095 B問題
競技プログラミングで使える関数を実際の問題を通して紹介いたします。
今回は「input( )」です。
複数回のinput( )
所持金:X円
最低限作りたいドーナツの種類:N
ドーナツの素の値段:
でN種類のドーナツを作り、残った値段でできるだけ多くのドーナツを作ると
最大何個作る事ができるか
N,X = map(int, input().split()) ms = [int(input()) for i in range(N)] print(N + int((X - sum(ms))/min(ms)))
ms = [int( input( ) ) for i in range(N)]
により、N回の入力値をmsという配列に格納していきます。
で残りの値段が算出でき、
でドーナツの中で最も安いものをいくつ作る事ができるのを算出できます。
コードの改善
N,X=map(int,input().split()) s=[int(input()) for i in range(N)] print(((X-sum(s))//min(s))+N)
最後の行の
//
これは切り捨て徐算といって、
3//2 → 1 5//3 → 1 7//2 → 3
といった具合で、商だけを出力することができます。
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ,清水川貴之監訳,清水川貴之,新木雅也
- 出版社/メーカー: 日経BP社
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログ (2件) を見る