ml_begin’s blog

Python初心者が、機械学習、画像認識、Web解析について取り組んでいきます。

AtCoder(競プロ)〜1日1問【19日目】

f:id:ml_begin:20180604073123j:plain

本日はAtCoder Beginner Contest 092
A問題に取り組んでいきます。
残すところ11日...

abc092.contest.atcoder.jp

今回の問題のポイントは、

複数行に入力がある

・複数行に入力があるとは、このようなケースです。(A,B,C,Dが入力)

A
B
C
D
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