週末副業記

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

条件に応じて出力を変える[]を用いた記法(AtCoder(競プロ)1日1問【18日目】【Python】)


AtCoder Beginner Contest 093 B問題

B - Small and Large Integers

 

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

今回は「を用いた記法」です。

 

を用いた記法

A,B,K = map(int,input().split())
K = [ B - A , K ][ K < ( B - A ) ]
lst = [ i for i in range( A , B + 1 )]
unique_lst = sorted(list( set ( lst[ 0 : K ] + lst[ B - A - K + 1 : B - A + 1 ] )))
for j in unique_lst:
    print(j)

[ B - A , K ][ K < ( B - A ) ]は右側[]の条件を満たしている場合、「K」が出力されるといったような条件記法です。

 

コードの改善

競技プログラミングではプログラムの処理完了までの速度も重要な要素の一つですので、より短く簡潔なコードを書くことが重要です。

a,b,k = map(int, input().split())
for i in range(a, min(a+k, b+1)):
  print(i)
for i in range(max(a+k,b-k+1),b+1):
  print(i)

 

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

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