Magicode logo
Magicode
1

Pythonで競技プログラミングをやるときに使う記法まとめ

はじめまして。
最近、AtCorderをやり始めた万年灰色のアラフォーエンジニアです。言語はPythonを使っています。

競プロって、特殊なコードが多いので慣れるまで大変です。そこで個人的に競プロ時によく使うPythonの記法をまとめていきます。(随時更新予定です。競プロを続けられている限り・・・💧)

Magicodeはコード実行できるので、短いコードを実行することが多い競プロと相性がいいのではと思っています。

入出力

入力

1つの数値


3

スペース区切り複数の数値


スペース区切り入力を配列にする場合 (listをsetにすれば、set型にもできる)


[1, 2, 3]

別法 (上記の法がわかりやすいし応用もしやすいので、使うケースはないと思う)


[1, 2, 3]

改行入力


[1, 3, 5]

出力

配列をスペース区切りで出力


1 3 5

配列の中から一番最初に見つかったindexを出力

Mex(Minimum EXcluded Value)などの問題に使える。 (例題 AtCorder 250 B)


2

booleanからYes/Noの文字列を出力

Pythonの三項演算子は見づらいので、あまり使いたくないが、これぐらいはパッと使えるようにしたほうが良さそう。


Yes No

配列

連番配列を用意


[0, 1, 2, 3, 4]

最小値/最大値とindexを取得


19 3

max, minは複数のintから最大値/最小値を得るのにも使用できる。


要素削除


ループ

range


0 1 2 3 4 ------ 2 3 4

enumerate


0 a 1 b 2 c

Discussion

コメントにはログインが必要です。