標準入力とは?
競技プログラミングで問題を解くにあたって最初にすることは与えられた数値、文字列を読み込むことです。次にその与えられたものを処理します。最後に出力して終了です。
インターネットで調べると
標準入力とは、UNIX環境でのキーボードに相当する装置のことである。
標準入力とは、コンピュータ上で実行されているプログラムが、特に何も指定されていない場合に標準的に利用するデータ入力元。コンピュータの入力装置やOSが提供するデータ入力機能・経路などを指し、多くのシステムではキーボード装置による利用者の文字入力が標準入力に設定されている。システム上では “stdin” の略号で表されることが多い。
のようになにか難しそうなことが書いてありますが、競プロにおいて、標準入力とは最初に与えられるもののことと捉えて問題ありません。
どうやって標準入力を取得するの?
python3では「input関数」を使います。 例えば標準入力が以下のように与えられたとします。
3
この3をnumberという変数に代入するには
number = input()
と記述します。 このままでは3を数字としてでなく文字列として扱ってしまうので、
number = int(input())
とすると整数として扱うことができます。
実際の例
整数を受け取る場合
# 標準入力から整数を受け取る
number = int(input())
print(f"受け取った数値: {number}")
文字列を受け取る場合
# 標準入力から文字列を受け取る
text = input()
print(f"受け取った文字列: {text}")
複数の値を一行で受け取る場合
# スペース区切りで複数の整数を受け取る
a, b, c = map(int, input().split())
print(f"a={a}, b={b}, c={c}")
複数行の入力を受け取る場合
# 最初の行で個数を受け取り、その後の行でデータを受け取る
n = int(input())
numbers = []
for i in range(n):
numbers.append(int(input()))
print(f"受け取った数値のリスト: {numbers}")
このようにinput()
関数を使い分けることで、競技プログラミングの様々な入力形式に対応できます。