LoginSignup
82
47

More than 1 year has passed since last update.

AtCoderで「戦う土俵に立つ」ための環境構築

Last updated at Posted at 2020-12-21

前置き

Qiitaを閲覧されている方の中には競技プログラミング(以下 競プロ)
特にAtCoderに参加してみたいor参加して間もない、という人も居ると思います。
そんな方々の一助になれば、というローカル環境構築の記事です。

この記事で出来るようになること

スクリーンショット 2020-12-02 10.02.47.png
AtCoderの各種コンテストページにある「コードテスト」と同様のことが、
ローカル環境(=手元のPC上)で実行できるようになります。

何故ローカルでコードテストしたいか

AtCoder上でコードテストをする、となった場合は下記の手順を踏むことになります。

  1. ローカルで解法コードを記述
  2. 「コードテスト」ページのソースコード欄に1.をコピペ
  3. 標準入力欄に、問題で与えられた入力サンプルをコピペ
  4. 「実行」を押して(ドキドキしながら)標準出力の結果を待つ

対してローカルでコードテストを実行した場合、

  • 手順2が省略される
  • (サーバー混雑などで)手順4で待たされる、ことが無くなる

というメリットがあります。
思考力や実装力とは関係ない部分で不利を背負うのは勿体ないですし、
コンテスト中に待たされるストレスを少しでも減らすことが出来ます。

本記事を読んでほしい対象読者

下記のいずれかに当てはまる方は、是非読み進めて頂きたいです。

  • これから競プロを始めようとしている
  • けんちょんさんの過去問精選記事を読んで、本格的に競プロを始めようとしている
  • 最近までwindowsを使っていて、あまりMacの使い方に慣れていない

注意事項

  • 計算量やアルゴリズムなどの話は出てきません
  • あくまでスタートラインに立つための最低限の環境構築の話です

エディタ

  • 軽い
  • コード補完が効く
  • 競プロだけでなく実務に耐えうる
  • 無料

といった理由からVisualStudioCode(以下VScode)がオススメです。
正直エディタは何でも良いのですが、この記事はほぼVScodeの使い方説明となります。

使用言語

Python3ユーザーを想定しています。

構築手順

VScodeインストール

Microsoft公式からダウンロードしてインストールしてください。
(※慣れている人はhomebrewなどで入れても勿論OKです)

VScodeの操作

ターミナル起動

VScodeを起動したら Control+`と入力してください。
エディタの下半分にターミナル画面が出てきたはずです。
スクリーンショット 2020-12-01 21.23.22.png

念の為python3が入っているかの確認

python3 -V と入力して、Python 3.8.5といった感じで3.*.*とバージョンが表示されていれば入っています。
もしpython3が入っていないようであれば mac python3 インストールといったキーワードで検索してください。
※qiitaの記事が多数ヒットしますので、本記事では割愛します。

atcoderフォルダ作成

スクリーンショット 2020-12-01 21.26.00.png
ターミナルで上記スクショのように
cd Desktop
mkdir atcoder
と打ち込んでください。
この時点でデスクトップにatcoderというフォルダが出来ているはずです。

  • cdはディレクトリを移動するコマンド
  • mkdirはディレクトリ作成(windowsで言うところのフォルダ作成)のコマンド

必要なファイル作成

スクリーンショット 2020-12-01 21.30.43.png
ターミナルで上記スクショのように
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オプションで、ウィンドウを再利用するオプションです。

自動保存設定

スクリーンショット 2020-12-01 21.42.18.png
画面左下の歯車からsettingを選択して、
AutoSaveの項目でafterDelayを選択して自動保存を有効にしておきましょう。
間違ってエディタを落として「書きかけのコードが全部消える」といった事故を防げます。

ファイルの開き方

スクリーンショット 2020-12-01 21.50.09.png

画面左列のファイル名をダブルクリックすると、
対象のファイルが画面右側にタブ表示されます。

各ファイルの使い方

command.txt

入力サンプルを提出用コードに渡してローカルでコードテストを実行するためのコマンドを記載しておきます。
python3 answer.py < input.txt と入力しておいてください。

answer.py

提出用コードをこのファイルに書いていきます。

input.txt

問題で与えられた入力サンプルをこのファイルにコピペします。

knowledge.txt

コンテスト最中や前後に見返すためのメモ置き場です。

実際に使ってみる

環境構築は以上となりますので、実際にこれらのファイルを使ってBeginnersSelectionのPracticeAを解いてみます。

answer.py

下記コードを書きます。
a = int(input())
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で過去のコマンドが遡れます)

提出する

  1. answer.pyの内容をcommand+a で全選択
  2. command+c でコピー
  3. command+v でAtCoder上のソースコード欄に貼り付け
  4. 提出ボタンを押す
  5. 無事AC!

環境構築・使い方の説明は以上となります。
ご精読ありがとうございました。良き競プロライフを〜

82
47
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
82
47