0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

この記事では私がAtCoderをやる上で使用している環境を提示いたします。MacBookProとWindowsのデスクトップPCを所持しているため,どちらのPCであっても同じようにできるようにしています。

Editorはcursorを使用しています。こちらのEditorはVSCodeフォークなので,VSCodeでも同様にできるかと思います。また,コンテナにアタッチできるEditor/IDEであれば他のものでも私と同様にできるかと思います。

また,使用言語はC++とPython3,PyPy3を想定しています。RustやNimなどの言語を使用される方は適宜変更を加えていただけると良いかと思います。

結論

基本はDockerコンテナにattachして行なってます。Dockerfileは次のとおりです。コピーしていただければ使用できるかと思います。

FROM ubuntu:latest as dev

CMD ["/bin/bash", "-b"]

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Tokyo

RUN apt-get update && apt-get upgrade -y && \
	apt-get autoremove -y && \
	apt-get clean

RUN apt install -y build-essential procps curl file git time tzdata tree vim software-properties-common

RUN add-apt-repository ppa:ubuntu-toolchain-r/ppa -y
RUN apt-get update

RUN add-apt-repository ppa:deadsnakes/ppa -y
RUN apt-get update

RUN apt install -y gcc-12 g++-12 clang python3.11 python3-pip
RUN apt install -y pypy3 nodejs npm

RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 30 && \
	update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 30 && \
	update-alternatives --install /usr/bin/python python /usr/bin/python3.11 30 && \
	update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 30 && \
	update-alternatives --install /usr/bin/pypy pypy /usr/bin/pypy3 30 && \
	update-alternatives --install /usr/bin/node node /usr/bin/nodejs 30

RUN pip install -U pip && \
	pip install numpy scipy scikit-learn numba networkx

RUN git clone https://github.com/atcoder/ac-library.git /lib/ac-library
ENV CPLUS_INCLUDE_PATH /lib/ac-library

RUN pip install git+https://github.com/hinamimi/ac-library-python && \
	pip install git+https://github.com/hinamimi/python-sortedcontainers

RUN pip install online-judge-tools
RUN npm install -g atcoder-cli

COPY . /root/src

WORKDIR /root/src

詳細解説

先頭から数行は省略いたします。

RUN add-apt-repository ppa:ubuntu-toolchain-r/ppa -y
RUN apt-get update

RUN add-apt-repository ppa:deadsnakes/ppa -y
RUN apt-get update

RUN apt install -y gcc-12 g++-12 clang python3.11 python3-pip
RUN apt install -y pypy3 nodejs npm

C++とPythonをaptでインストールするためapt-get-repositoryに追加しています。その後,C++とPythonをインストールしています。また,後述のatcoder-cliをインストールするためにnodejsとnpmをインストールしています。atcoder-cliを使用しない場合は省略しても構わないかと思います。

RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 30 && \
	update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 30 && \
	update-alternatives --install /usr/bin/python python /usr/bin/python3.11 30 && \
	update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 30 && \
	update-alternatives --install /usr/bin/pypy pypy /usr/bin/pypy3 30 && \
	update-alternatives --install /usr/bin/node node /usr/bin/nodejs 30

インストールされたgcc, g++, Python, pip, PyPy, nodeの優先度を30に設定しています。先ほどインストールしたC++やPythonを使用する際にそちらを優先的に使用するよう変更しています。

RUN pip install -U pip && \
	pip install numpy scipy scikit-learn numba networkx

RUN git clone https://github.com/atcoder/ac-library.git /lib/ac-library
ENV CPLUS_INCLUDE_PATH /lib/ac-library

RUN pip install git+https://github.com/hinamimi/ac-library-python && \
	pip install git+https://github.com/hinamimi/python-sortedcontainers

AtCoderで使用できるライブラリをインストールしています。ACLの詳細についてはこちらをご覧いただくと良いかと思います。

RUN pip install online-judge-tools
RUN npm install -g atcoder-cli

AtCoderをやる上で便利なツールになります。詳細は公式GitHubのREADMEをご覧いただくと良いかと思います。
online-judge-tools
atcoder-cli

終わりに

他にもTaskfileやsettings.jsonなどもありますが,単純に環境を作ると言う観点ですと,こちらで十分かと思います。参考にしていただけると嬉しいです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?