13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RUNTEQAdvent Calendar 2024

Day 4

JavaでのAtCoder環境構築

Last updated at Posted at 2024-12-03

はじめに

RUNTEQで学んでいるsekiと申します!今回はAtCoderでJavaでの自動化環境の構築を自分なりにまとめてみたので公開したいと思います。

ゴール

VSCode上に、AtCoder用のJava環境を作成し、AtCoderの問題のダウンロード・テスト・提出をローカル上で完結できるようにする。

対象読書

  • Javaに興味を持っている方
  • AtCoderでJavaを使用していて、ブラウザでの操作に面倒くささを感じている方

参考記事

以下、参考にさせていただいた記事です。

目次

1.JDKのインストーラをダウンロード
2.フォルダの作成
3.AtCoderの拡張機能のインストール
4.TIPS

1.JDKのインストーラーのダウンロード

こちらからJDKをインストールしてください。
※私の場合は、ARM64 DMG Installerで、インストールしました。MacAir2です。
https://www.oracle.com/java/technologies/downloads/?er=221886#jdk23-mac

Javaのバージョンを確認

java -version

以下のバージョンが出ていることを確認

java version "23.0.1" 2024-10-15
Java(TM) SE Runtime Environment (build 23.0.1+11-39)
Java HotSpot(TM) 64-Bit Server VM (build 23.0.1+11-39, mixed mode, sharing)

2.フォルダの作成・拡張機能のインストール

フォルダの作成

ターミナルで以下のコマンドを実行して、フォルダを作成
VSCodeを開く

mkdir atCoder
cd atCoder
. vsCode

Javaのインストール確認

touch Main.java

Main.javaを作成し、以下のコードを記述

public class Main {
    public static void main(String[] args) {
 
    System.out.println("Hello, world!")
}

以下のコマンドを打ち、「Hello, world!」が出れば成功です。

java Main.java

以下の拡張機能をインストール

Javaの便利な機能がまとめて入っているお得な機能です
https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack
image.png

3.atCoderの拡張機能のインストール

次に、atCoderの拡張のatcoder-clionline-judge-tools をインストールしていきます
以下、公式記事です。
http://tatamo.81.la/blog/2018/12/07/atcoder-cli-installation-guide/

ツールのインストールの確認

以下のコマンドがない場合は、適宜インストールしてください

# Homebrew
$ brew -v
Homebrew 4.4.8

# npm
$ npm -v
10.8.1

# pip3
$ pip3 -V
pip 22.0.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)

ツールのインストール

# atcoder-cli インストール
$ npm install -g atcoder-cli
# インストール確認
$ acc -v
2.2.0

# online-judge-tools インストール
$ pip3 install online-judge-tools
# インストール確認
$ oj --version
online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1)

初期設定

コマンドライン上でAtCoderにログインをします
ユーザー名とパスワードを聞かれるので、記載してください。

$ acc login

4.TIPS

上記のことを行えば、AtCoderの拡張機能はインストール完了です。
ここから先はAtCoderを便利にするための機能です。

コンテストディレクトリ作成時に問題をすべてダウンロード

acc new コンテストID でコンテスト用のディレクトリを作成した際にどの問題をダウンロードするか選択する
1問でも全問でもダウンロードは一瞬なので全問ダウンロードするようにします
下記を実行

acc config default-task-choice all

これでatcoder-cliの設定が毎回全問ダウンロードの設定に書きかわりました

テンプレートの作成

毎回提出用のファイルを作成するのは面倒になります。最低でもこれはどんな人でも打つと思います。

import java.util.Scanner;

/**
 * AtCoder用クラス
 */
public class Main {
    public static void main(String[] args) {
 
    Scanner sc = new Scanner(System.in);
    
}

こちらをテンプレート化して、自動作成します。

# atcoder-cli設定ディレクトリに移動
cd `acc config-dir`

# テンプレート作成
mkdir java && cd java
touch template.json
touch Main.java

以下を記載

vi template.json
{
  "task":{
    "program": ["Main.java"],
    "submit": "Main.java",
	"testdir": "test"
  }
}

次にこれをテンプレート化します。

acc config default-template java

できているかの確認

https://atcoder.jp/contests/abc380
こちらのコンテストで、確認をします。
まず、問題をローカルに落とします。

acc new abc380

問題の箇所に移動します。

cd abc380
cd a

aフォルダにあるMain.javaを適当に記載します。完了したら、以下のコマンドを打ちます。

oj t -c "java Main.java" -d ./test/  

テスト結果が流れてくると思います。

[INFO] slowest: 0.194286 sec  (for sample-1)
[FAILURE] test failed: 0 AC / 4 cases

最後に、提出をします

acc submit Main.java -- -l 5005

途中、以下のように聞かれるので、abcaを入力します。

Are you sure? Please type "abca" 

最後に、AtCoderの提出の画面が出れば、成功です。

13
1
0

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
13
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?