前置き
Qiitaを閲覧されている方の中には競技プログラミング(以下 競プロ)
特にAtCoderに参加してみたいor参加して間もない、という人も居ると思います。
そんな方々の一助になれば、というローカル環境構築の記事です。
この記事で出来るようになること
AtCoderの各種コンテストページにある「コードテスト」と同様のことが、
ローカル環境(=手元のPC上)で実行できるようになります。
何故ローカルでコードテストしたいか
AtCoder上でコードテストをする、となった場合は下記の手順を踏むことになります。
- ローカルで解法コードを記述
- 「コードテスト」ページのソースコード欄に1.をコピペ
- 標準入力欄に、問題で与えられた入力サンプルをコピペ
- 「実行」を押して(ドキドキしながら)標準出力の結果を待つ
対してローカルでコードテストを実行した場合、
- 手順2が省略される
- (サーバー混雑などで)手順4で待たされる、ことが無くなる
というメリットがあります。
思考力や実装力とは関係ない部分で不利を背負うのは勿体ないですし、
コンテスト中に待たされるストレスを少しでも減らすことが出来ます。
本記事を読んでほしい対象読者
下記のいずれかに当てはまる方は、是非読み進めて頂きたいです。
- これから競プロを始めようとしている
- けんちょんさんの過去問精選記事を読んで、本格的に競プロを始めようとしている
- 最近までwindowsを使っていて、あまりMacの使い方に慣れていない
注意事項
- 計算量やアルゴリズムなどの話は出てきません
- あくまでスタートラインに立つための最低限の環境構築の話です
エディタ
- 軽い
- コード補完が効く
- 競プロだけでなく実務に耐えうる
- 無料
といった理由からVisualStudioCode(以下VScode)がオススメです。
正直エディタは何でも良いのですが、この記事はほぼVScodeの使い方説明となります。
使用言語
Python3ユーザーを想定しています。
構築手順
VScodeインストール
Microsoft公式からダウンロードしてインストールしてください。
(※慣れている人はhomebrewなどで入れても勿論OKです)
VScodeの操作
ターミナル起動
VScodeを起動したら Control+`
と入力してください。
エディタの下半分にターミナル画面が出てきたはずです。
念の為python3が入っているかの確認
python3 -V
と入力して、Python 3.8.5
といった感じで3.*.*
とバージョンが表示されていれば入っています。
もしpython3が入っていないようであれば mac python3 インストール
といったキーワードで検索してください。
※qiitaの記事が多数ヒットしますので、本記事では割愛します。
atcoderフォルダ作成
ターミナルで上記スクショのように
cd Desktop
mkdir atcoder
と打ち込んでください。
この時点でデスクトップにatcoder
というフォルダが出来ているはずです。
-
cd
はディレクトリを移動するコマンド -
mkdir
はディレクトリ作成(windowsで言うところのフォルダ作成)のコマンド
必要なファイル作成
ターミナルで上記スクショのように
cd atcoder
touch answer.py input.txt command.txt knowledge.txt
と打ち込んでください。
-
touch
はファイル作成のコマンド -
answer.py
などのファイル名は適当なので、好みのファイル名に変えてもらってOKです。
atcoderフォルダを開く
code . -r
と打ってください。
先程作ったatcoderフォルダをVScodeで開いた状態になるはずです。
-
code
はVScode上でファイルやフォルダを操作するコマンド -
code .
で現在居るフォルダ(つまりatcoderフォルダ)を開きます。 -
-r
はreuse-windowオプションで、ウィンドウを再利用するオプションです。
自動保存設定
画面左下の歯車からsettingを選択して、
AutoSaveの項目でafterDelayを選択して自動保存を有効にしておきましょう。
間違ってエディタを落として「書きかけのコードが全部消える」といった事故を防げます。
ファイルの開き方
画面左列のファイル名をダブルクリックすると、
対象のファイルが画面右側にタブ表示されます。
各ファイルの使い方
command.txt
入力サンプルを提出用コードに渡してローカルでコードテストを実行するためのコマンドを記載しておきます。
python3 answer.py < input.txt
と入力しておいてください。
answer.py
提出用コードをこのファイルに書いていきます。
input.txt
問題で与えられた入力サンプルをこのファイルにコピペします。
knowledge.txt
コンテスト最中や前後に見返すためのメモ置き場です。
実際に使ってみる
環境構築は以上となりますので、実際にこれらのファイルを使ってBeginnersSelectionのPracticeAを解いてみます。
answer.py
下記コードを書きます。
b,c = map(int,input().split())
s = input()
print(a+b+c, s)```
## input.txt
入力例1のサンプルを打ち込みます。
```1
2 3
test
answer.py実行
Control+`
でターミナルを起動したら、
command.txtに書いておいたpython3 answer.py < input.txt
を実行します。
するとターミナルには6 test
と出力されて、これは問題の出力例1の値と一致します。
このサンプルではanswer.pyは題意を満たしていそうです。
※実際のコンテストの前にはターミナル起動とpython3 answer.py < input.txt
を1度実行しておくと良いと思います。
(ターミナルで↑
かControl+p
で過去のコマンドが遡れます)
提出する
- answer.pyの内容を
command+a
で全選択 -
command+c
でコピー -
command+v
でAtCoder上のソースコード欄に貼り付け - 提出ボタンを押す
- 無事AC!
環境構築・使い方の説明は以上となります。
ご精読ありがとうございました。良き競プロライフを〜