週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

最小値を返すmin()(AtCoder(競プロ)1日1問【19日目】【Python】)


AtCoder Beginner Contest 092 A問題

abc092.contest.atcoder.jp

 

競技プログラミングで使える関数を実際の問題を通して紹介いたします。

今回は「min()」です。

min関数により最小値を返す

min関数は、引数の中で最も小さい値を返り値とします。
例えば、 A = 1, B = 3の場合、

result = min(A,B)

の結果は
1
となります。

以上の方法を用いてコードを書きます。

trainBus = [int(input()) for i in range(4)]
print(min(trainBus[0],trainBus[1])+min(trainBus[2],trainBus[3]))

 

コードの改善
 
競技プログラミングではプログラムの処理完了までの速度も重要な要素の一つですので、より短く簡潔なコードを書くことが重要です。
f=lambda:min(int(input()),int(input()))
print(f()+f())

Python独特の記法

lambda (引数):処理内容

上記のコードでは、電車の運賃がはじめの二つ、バスの運賃があとの二つになってます。
print関数のはじめの

f()

f=lambda:min(int(input()),int(input()))

が実行されており、はじめの二つの入力が求められます。
次のf()であとの二つの入力を待っています。これにより最初に書いたプログラムと同様の結果となります。lambdaを用いると、複雑な式もシンプルにかく事ができます。


参考:
 

www.sejuku.net

 

 

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで