AtCoder Beginner Contest 093 B問題
競技プログラミングで使える関数を実際の問題を通して紹介いたします。
今回は「を用いた記法」です。
を用いた記法
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言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ,清水川貴之監訳,清水川貴之,新木雅也
- 出版社/メーカー: 日経BP社
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログ (2件) を見る