Important
This repository provides a ready-to-use VS Code Dev Container for competitive programming on AtCoder.
- Python 3.13 (slim)
- online-judge-tools (oj) with tab completion
- Jupyter
- Selenium (for silencing warnings on oj use)
Follow these steps to get the same development environment on Windows, macOS, or Linux.
-
Install prerequisites
- Git
- Docker
- Windows/macOS → install Docker Desktop
- Linux → install Docker engine via your package manager.
- Visual Studio Code (VS Code)
- Dev Containers extension for VS Code (See tutorial)
-
Fork this repository
-
Clone repo to local Open a terminal and run:
git clone https://github.com/<your-github-username>/Atcoder_Python.git
cd Atcoder_Python
-
Open in VS Code
- Launch VS Code.
- Open the cloned folder (File → Open Folder).
- If the Dev Containers extension is installed, you’ll see a prompt: “Reopen in Container”. Click it.
- Or, open the Command Palette (Ctrl+Shift+P or Cmd+Shift+P on macOS) and run: “Dev Containers: Reopen in Container”
VS Code will then:
- Build the Docker image from .devcontainer/Dockerfile.
- Mount your project into the container at /workspaces/Atcoder_python.
- Install Python, oj, Jupyter, and Selenium automatically.
Warning
Important: work/ folder
- This repository contains a folder called work/.
- It is where you should put all your own contest code and notebooks.
- Before starting to use the container, please delete the existing contents of work/ — those are my solutions, kept here only as an example.
- Once emptied, the work/ folder will serve as your personal workspace.
Run Python scripts:
python main.py
Please refer https://github.com/online-judge-tools/oj
Download a problem with oj:
oj download https://atcoder.jp/contests/abc999/tasks/abc999_a
Test locally:
oj test
Start JupyterLab (port 8888 will be forwarded automatically):
jupyter lab --ip=0.0.0.0 --no-browser --NotebookApp.token=''
- Always fork → clone your fork so you can push your own solutions to GitHub.
- All code runs inside the container, so your local system stays clean.
- Your workspace is bind-mounted → changes are saved directly in your local files.
- Works on Windows (via WSL2), macOS (Intel/Apple Silicon), and Linux.
Feel free to open issues or PRs to improve the environment (e.g., add useful extensions, packages, or helper scripts).