[AtCoder初心者向け] VS Codeでのコードテストの実施方法 [Java]
はじめに
こんにちは。
プログラミング初心者wakinozaと申します。
Java勉強中に調べたことを記事にまとめています。
十分気をつけて執筆していますが、なにぶん初心者が書いた記事なので、理解が浅い点などあるかと思います。
間違い等あれば、指摘いただけると助かります。
記事を参考にされる方は、初心者の記事であることを念頭において、お読みいただけると幸いです。
対象読者
- AtCoderを始めたばかりの方
- プログラミングコンテストのコードを、VS Codeで書いて、テストまで行いたい方
動作環境
- MacBook(Intel CPU 搭載)
- Visual Studio Code
- Oracle Java 21
記事のテーマ
- AtCoderのABCコンテストに参加しています。
- これまで、テストは公式HPのコードテスト画面で行なっていました。しかし、コンテスト中は混み合うため、テストの待ち時間が長くなりがちです。
- テストの待ち時間を短縮できないかと考え、VS Codeでコードテストを行う方法を見つけました。この記事は、その方法の備忘録として書いています。
- より効率の良いやり方がありそうなので、今後も効率化していきたいです。
本文
本記事では、ローカルでのテスト実行に焦点を当てるため、Java環境構築は以下の記事を参照してください。
フォルダとファイルを作成
まず、VS Codeのターミナルを開き、新しいフォルダ(contestとします)を作成します。
VS Codeのターミナルは、メニューバーの「ターミナル」→「新しいターミナル」を選択して開きます。
mkdir contest
VS Codeのメニューバー「ファイル」→「ファイルを開く」を選択し、作成したフォルダ「contest」を開きます。
次に、開いた「contest」フォルダ内に、Javaファイルを作成します。
VS Codeで「新しいファイルを作成」ボタンを選択し、ファイル名( Main.javaとします)を入力します。
さらに、同じ「contest」フォルダ内に、テストデータを記述するためのテキストファイルを準備しておきます。
ファイル名は「test.txt」とします。
この時点では、ファイルに何も記述していなくても大丈夫です。
コードを記述
例えば、以下のようなコードを準備しておくと、コンテストがスムーズに進められます。
//デフォルトのコード例
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
String s = scanner.next();
scanner.close();
}
}
コンテストが始まれば、問題を確認して、VS Codeに解答コードを記述します。
コードをテスト
解答コードが完成したら、試したいテストデータの入力例をコピーし、準備しておいた「test.txt」ファイルにペーストします。
次に、VS Codeのターミナルを開き、ファイルをコンパイルします。
javac Main.java
そして、ターミナルで、コンパイルされたクラスファイルを実行します。
クラスファイル実行時には、拡張子「.class」は記述せず、ファイル名のみ記述します。
この時、リダイレクト演算子「<」を使って 「test.txt」の内容も渡します。
なお、リダイレクト演算子とは、標準入力(System.in)を経由してファイルの内容を読み込ませるための仕組みです。
java Main < test.txt
クラスファイルを実行すると、ターミナルに実行結果が表示されます。
コードを変更せず、複数のデータでテストを行う場合は、test.txtを新しいデータに置き換えて、同様にクラスファイルを実行します。再コンパイルは不要です。
コードを変更した場合は、コンパイルからやり直します。
十分にテストを実行できたら、解答コードを公式サイトにコピーペーストして提出します。
もし、ファイル名(クラス名)をMain以外にした場合は、公式サイトにコピーペーストした後、提出前にクラス名を「Main」に変更しましょう。
クラス名がMain以外だと、エラーになります。
記事は以上です。
最後までお読みいただき、ありがとうございました。
Discussion