Kana
こんにちは。
最近、AtCoderにて競技プログラミングを始めたKanaです。
競技プログラミングを初めて、一番最初に困ったのが入力の受け取りでした。
まず、「入力??」「出力??」という状態からスタートだったのが敗因です。
今回は、私みたいな競技プログラミング初心者の方に、Pythonでの色々な入力の書き方を共有します。
そもそも入力が受け取れないと、何も始まらないので!
1行1列の入力
入力が「N」などの一列の場合。
これはほぼ毎回出てくると思います。
入力:
N
入力例:
3
#Str型で受け取るとき
#私の覚え方:文字列として扱いたいとき
N = input()
#int型で受け取るとき
#私の覚え方:数字として使いたいとき
N = int(input())
#float型で受け取るとき
#私の覚え方:少数を使いたいとき
N = float(input())
横1行の入力
任意の数横に並んでいる入力
入力:
A B
入力例:
12 44
#A, Bにそれぞれ入力を受け取る
A, B = map(int, input().split())
#出力
print(A, B)
#12 44
N個横に並んでおり、スペースで区切られている入力
入力:
N
A1 A2 A3 A4 A5 … AN
入力例:
5
5 10 12 50 66
#Aをlistにし、受け取る
A = list(map(int, input().split()))
#出力
print(A)
#[5, 10, 12, 50, 66]
縦1列の入力
入力:
N
A1
A2
A3
…
AN
入力例:
3
4
5
16
#パターン1
N = int(input())
#空のリスト A を作る
A = []
#リストAの末尾にN個の入力を追加していく
for i in range(N):
A.append(int(input())
#出力
print(A)
#[4, 5, 16]
#パターン2
N = int(input())
A = [int(input()) for i in range(N)]
#出力
print(A)
#[4, 5, 16]
N行M列の入力
入力:
N M
A1 B1
A2 B2
… …
AM BM
入力例:
2 3
1 2
3 4
5 6
N, M = map(int, input().split())
#文字列で受け取る場合
P = [input().split() for i in range(M)]
#出力
#[['1','2'], ['3','4'], ['5','6']]
#数字で受け取る場合
P = [list(map(int, input().split())) for i in range(M)]
#出力
#[[1, 2], [3, 4], [5, 6]]
最後に
今回は競技プログラミングを始める際に必須の入力の書き方をまとめました!
もし他にもこんな書き方があるよ!とか、Python以外の入力が知りたい!という人は是非コメントをください。
あと、AtCoderをこれから始めようと考えている人はAtCoder Beginners Selectionから挑戦するのがおすすめです。
AtCoder Beginners Selection - AtCoder
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.
ぜひ挑戦してみてくださいね。
コメント