Python で AtCoder に参加するための環境準備1

記事の内容

AtCoder Begginner Contest に参加するときは、いつも AtCoder の環境(コードテスト)を利用していますが、少しでも提出までの時間を削減したいため、ローカルでテストができるように整備しています。まずは問題数分のファイルを生成するコードを作成しました。よく使う入出力コードをデフォルトで記載した .py ファイルが AからE問題分生成されます。

参考:http://www.kekeho.com/2019/03/atcoder-abc-script-for-vscode-python.html

コード

generate.py

import sys
import os

try:
    contest_num = sys.argv[1]
except IndexError:
    print('Error: コンテストの番号を入力してください')
    exit()

folder = f'abc_{contest_num}'
files = [f'abc_{contest_num}_{problem}.py' for problem in ['a', 'b', 'c', 'd', 'e']]
template = """S = input()
S = input().split()
N = int(input())
L = list(map(int, input().split()))
a, b = map(int, input().split())
"""

if not os.path.exists(folder):
  os.mkdir(folder)

for file in files:
    with open('{}/{}'.format(folder, file), 'w') as f:
        f.write(template)

使い方

$ ls
generate.py
$ python generate.py 144 # 問題番号
$ ls
abc_144         generate.py
$ ls abc_144/
abc_144_a.py    abc_144_b.py    abc_144_c.py    abc_144_d.py    abc_144_e.py
$ cat abc_144/abc_144_a.py 
S = input()
S = input().split()
N = int(input())
L = list(map(int, input().split()))
a, b = map(int, input().split())