週末副業記

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

sorted()の出力を降順にする(AtCoder(競プロ)1日1問【28日目】)


AtCoder Beginner Contest 088 B問題

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

今回は「sorted()」です。

sorted()の出力を降順にする

N=input()
a= sorted([int(j) for j in input().split()],reverse=True)
print(sum(a[::2])-sum(a[1::2]))

sorted()の第二引数に「reverse=True」を入力することにより「降順」にすることができます。

コードの改善

他の人の書いたコードを見て考察をし、コードの改善を行います。
N=int(input()) A=sorted(map(int,input().split()))[::-1] print(sum(A[::2])*2-sum(A))

2行目::[::-1]はpython的には汎用性あるのでよいが、reverse=Trueの方が見た目的には分かりやすいと思います。

4行目::問題的に言うとこれは以下のようになっています。

Alice ×2 - ( Alice + Bob)
= Alice - Bob
sum([::2])

この処理はメモリを食うと思います。

しかし、多少のメモリを犠牲に可読性をとることもエンジニアとして重要ですね。

 

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

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