競技プログラミング等で使用される標準入力について、自分の勉強と備忘録としてまとめます。
1行/1つの入力(文字列)
1行に1つの文字列「Hello」が入力される場合。
1 2 3 4 |
#入力:Hello World! text = input() print(text) #出力:Hello World! |
input関数は入力された文字列をstrデータ型として受け取り、「Hello World!」が出力される。
1行/複数の入力(文字列)
続いて、1行に複数の入力をする場合。
1 2 3 4 |
#入力: a b c text = input().split() print(text) #出力:['a', 'b', 'c'] |
split関数を加えることで、1つの入力として扱われていた文字列が空白によって区切られる。
「a b c」と入力すると、出力結果は[‘a’, ‘b’, ‘c’] となる。
複数の文字列をリストとして出力するので、
要素を指定することで個別にデータを扱うことができる。
1 2 3 4 5 6 7 8 |
#入力: a b c text = input().split() print(text[0]) #出力:a text[0]='d' print(text) #出力:['d', 'b', 'c'] |
1行/1つの入力(整数)
1 |
n = int(input()) |
int()は整数に変換します。
1行/複数の入力(整数)
1行に複数の入力をした上で、整数で受け取りたい場合。
1 2 3 4 5 6 7 8 9 |
#入力:1 2 3 n = [int(i) for i in input().split()] ''' もしくは n = list(map(int, input().split())) ''' print(n) #出力:[1, 2, 3] |
複数行に複数の入力
続いて、複数行に複数の入力を行う場合。
1 2 3 4 5 6 7 |
#3行2列の入力 #Nは入力の回数。1回につき2個入力された値がそれぞれa,bに代入される。 N = 3 list = [] for i in range(N): a,b = map(int, input().split()) list.append([a,b]) |
1 2 3 4 5 6 |
#n回の入力があり、1つのリストにまとめて代入する n = int(input()) #入力回数 Array = [] for i in range(n): Array.append(list(map(int, input().split()))) |
複数行/1行内に複数の変数/リスト形式の入力
入力
コード
1 2 |
n,k = map(int,input().split()) C = list(map(int,input().split())) |
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
""" 入力例 7 3 1 2 1 2 3 3 1 """ n,k = map(int,input().split()) C = list(map(int,input().split())) #出力 print(n,k) print(C) """ 出力結果 7 3 [1, 2, 1, 2, 3, 3, 1] """ |
変数を分けて複数行・複数列の入力
1 2 3 4 5 6 7 8 9 |
N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) """ 入力例 3 1 2 3 4 5 6 |
list関数を使って、AとBそれぞれに入力された変数を代入していく
まとめ
paizaのスキルチェックには標準入力が必須になっているので、標準入力がわからないと絶対に問題が解けない。
それでつまずいていたので、忘れないように書き残しておくことにした。
paizaのスキルチェックの前提部分はこれで何とかなりそうではあるものの、
標準入力の「標準」とは一体何のことなんだろうという疑問もあるので、
今後、何かわかったことがあればまた記録として残すことにしたい。
コメント