python 競技プログラム初級編

整数

入力を整数として受け取りたいとき。

1行に1つ

入力が 1 行に整数 1 つの場合。

n = int(input())

使用問題例: ABC145 A - Circle

1行に複数

入力が 1 行に複数ある場合。

10 20

みたいなときです。

n, m = map(int, input().split())

使用問題例: ABC144 A - 9x9

整数(リスト編)

複数の整数をリストとして受け取りたいときもあります。

1行

1 2 3 4

みたいなときです。

a = list(map(int, input().split()))  # [1, 2, 3, 4] になる

使用問題例: ABC142 B - Roller Coaster

複数行に1列ずつ

1
2
3
4

みたいなときです。

a = [int(input()) for i in range(n)]  # [1, 2, 3, 4] になる

n は行数です。for 文を使っても良いですが、このようにリスト内包表記を使うと楽です。

使用問題例: ABC115 B - Christmas Eve Eve

複数行に複数列ずつ

1 2 3 4
5 6 7 8
9 10 11 12

みたいなときです。

a = [list(map(int, input().split())) for i in range(n)]
# [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] になる

使用問題例: ABC133 B - Good Distance

文字列

入力を文字列として受け取りたいとき。

1行に1つ

入力が 1 行に文字列 1 つの場合。

abcde

みたいなときです。

s = input()

使用問題例: ABC146 A - Can't Wait for Holiday

1行に複数

入力が 1 行に複数ある場合。

abcd efghi

みたいなときです。

s, t = input().split()

使用問題例: ABC078 A - HEX

文字列(リスト編)

複数の文字列をリストとして受け取りたいときもあります。

1行

a b c d e

みたいなときです。

s = input().split()  # ['a', 'b', 'c', 'd', 'e'] になる

こちらはあまり使う機会がないです。

1行 その2

abcde

を文字列ではなくリストとして受け取ることもできます。

s = list(input())  # ['a', 'b', 'c', 'd', 'e'] になる

使用問題例: ABC009 C - 辞書式順序ふたたび *(かなり難しいです)

複数行

....
.#..
..#.

みたいなときです。

ref



いいなと思ったら応援しよう!