競技プログラミングのためのPythonの標準入力まとめ
この記事は?
自称競プロエンジョイ勢(灰色coder)の私は標準入力のやり方ですら忘れてしまうので,備忘録として書き残しておきます.
競技プログラミングのためのPythonの標準入力まとめ
最もかんたんな,1文字のみ文字列の場合
例えば入力データが,
N
のとき(Nは数値とします),
A = int(input())
入力段階でint型にキャストしてあげると後々便利です.
空白区切りの場合(それぞれの変数に代入するパターン)
例えば入力データが,
N M
となっているときは(N,Mは数値とすします),
N,M = map(int,input().split())
map関数を使うと便利です.こうすることで,N,Mの変数にそれぞれ値を代入することができます.
空白区切りの場合(リスト型パターン)
例えば入力データが,
N M L
となっているときは,
data = list(map(int,input().split()))
listでキャストをしないと,mapオブジェクトになるので注意です.(多少扱いにくくなります)
空白区切りがいくつ増えても対処できます.
複数行の空白区切りの場合
例えば入力データが,
N M
A11 A12 ... A1N
...
AM1 AM2 ... AMN
となっているとき,
N, M = map(int, input().split())
data = list(list(map(int, input().split())) for _ in range(M))
このように対処します.
可変長の単語空白区切り
あまり使用頻度は高くないと思いますが,Pythonの便利な機能を紹介します.
例えば入力データが,
N a b1 b2 ... bN
となっているとき,
N, a, *b = map(int, input().split())
このように対処します.
*bと表記することで,b1 b2 ... bN の部分はすべてリストbに格納されます.
PythonではNが必要ありませんね.