Skip to content

sasaki-shusuke/atcoder-java

Repository files navigation

AtCoder Java 環境

AtCoderでJavaを使用するための競技プログラミング専用開発環境です。VSCode Dev Containersを使用して簡単にセットアップできます。

🚀 クイックスタート

必要なもの

  • VSCode
  • Dev Containers拡張機能
  • Docker

セットアップ手順

  1. プロジェクトを開く
code atcoder-java-template
  1. Dev Containerで開く
  • Ctrl+Shift+P でコマンドパレットを開く
  • Dev Containers: Reopen in Container を選択
  • 初回は自動的にコンテナがビルドされます
  1. AtCoderにログイン
# ここを飛ばしても過去問のダウンロードは可能ですが、ログインしないとコンテストの参加ができません
aclogin

AtCoderのREVEL_SESSION Cookieの取得方法はこのURLを参照してください

📝 基本的な使い方

問題のダウンロード

# 例: ABC380の問題をダウンロード
acc new abc380

問題を解く

  1. abc380/a/Main.java を開く
  2. コードを書く
  3. テストを実行する

テスト実行

方法1: VSCodeタスク(推奨)

  • Ctrl+Shift+PTasks: Run TaskAtCoder: Test Current Problem

方法2: コマンドライン

./test abc380 a

提出

方法1: VSCodeタスク(推奨)

  • Ctrl+Shift+PTasks: Run TaskAtCoder: Submit Current Problem

方法2: コマンドライン

./submit abc380 a

⚡ VSCodeの便利機能

タスク機能

  • Ctrl+Shift+PTasks: Run Task で以下が利用可能:
    • AtCoder: Download Contest - 問題のダウンロード
    • AtCoder: Test Current Problem - 現在の問題をテスト
    • AtCoder: Submit Current Problem - 現在の問題を提出
    • AtCoder: Login - AtCoderにログイン

デバッグ機能

  • F5 でデバッグ実行
  • ブレークポイントで変数値を確認
  • ステップ実行でロジックを追跡

コード実行

  • Ctrl+F5 でコードを直接実行(Code Runner)

🛠️ 手動でのコンテナ操作

VSCode以外でコンテナを操作したい場合:

# コンテナをビルド・起動
docker-compose up -d --build

# コンテナに入る
docker-compose exec atcoder-java bash

# コンテナを停止
docker-compose down

📁 プロジェクト構造

atcoder-java/
├── .devcontainer/      # Dev Container設定
├── .vscode/           # VSCode設定(タスク、デバッグ等)
├── abc380/           # 問題ディレクトリ(実行時に作成)
│   ├── a/
│   │   ├── Main.java
│   │   └── test/      # サンプル入出力
│   └── ...
├── test              # テスト実行スクリプト
└── submit            # 提出スクリプト

🔧 環境詳細

インストール済みツール

  • Java: OpenJDK 17
  • Python: 3.10(atcoder-cli, online-judge-tools用)
  • Node.js: 18.x(atcoder-cli用)
  • atcoder-cli: 問題ダウンロード・提出
  • online-judge-tools: テスト実行

VSCode拡張機能

  • Java Extension Pack
  • Java Language Support
  • Code Runner

Javaテンプレート

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);


        sc.close();
    }
}

🔍 トラブルシューティング

Dockerビルドエラー

# キャッシュをクリアしてリビルド
docker-compose build --no-cache

権限エラー

# テスト・提出スクリプトに実行権限を付与
chmod +x test submit

📚 参考リンク

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published