今回は在学中に使っていたAOJ(Aizu Online Judge) を久しぶりに使ってみたので紹介します。
AOJとは
AOJとは名前にもある通り会津大学が運営しているオンラインジャッジシステムです。
オンラインジャッジって何?ってなるんですけど
AOJのwebページによると
オンラインジャッジは、提出されたプログラムの正しさとその効率の自動判定を行うWEBサービスです。たくさんの問題が収録されており、24時間自由に自分のペースでプログラミングを学ぶことができます。
らしいです。
使ってみた
ページにアクセスして上にあるコースをクリックすると以下の画像のようなコースリストが表示されます。(在学中よりもUIにこだわってる!!!)
コースを選択するとこんな画面が表示されます。
今回はアルゴリズムとデータ構造入門の1_A: Insertion Sort に取り組んでみました。
問題
今回の問題ページは
- 問題内容
- 入力内容
- 出力内容
- 制約
- 入力例とそれに対する出力
- Post note(具体的な解き方の説明?)
- コード入力欄
で構成されていました。
問題を解く欄ではこの問題を解くためのプログラミング言語をプルダウンから選ぶことができます。
ここから得意な言語を選びましょう。
ちなみに
Post noteの赤枠で囲った一般解説を押すと
このようにアルゴリズムの解説を見ることができます。
提出後
問題を解くプログラムを提出し、そのプログラムが要件を満たしていれば以下のStatus欄のようにAC(Accepted)が表示されます。また、AC以外にもいくつかStatusがあるので気になった方はこちらから確認してみてください。
また、AOJでは問題を解く欄の下部にあるSolutionsから、他のユーザーが提出したソースコードを見ることができます。
自分のコードとCPU Time, MeMory, Code sizeを比較できるのは成長につながりそうでいいですね!!!
paizaとの違い
現在研修で利用しているpaizaとの違いを探してみました
料金
paizaは一部有料コンテンツがありますが、AOJは完全無料です。
そのため、初心者の方も安心して利用することが可能です。
学習できる内容
- AOJ
競技プログラミングやアルゴリズムのトレーニングに特化しており、初心者から上級者まで幅広い難易度の問題が用意されています。 - paiza
実務で使用されるスキルや業務を想定した問題が中心です。
教材
- AOJ
問題文と入出力例、一般解説などが提供されますが、基本的には自己学習やトレーニング向けの問題集です。 - paiza
解説付きの問題や動画などの学習コンテンツが提供されています。
まとめ
AOJは実務に使いたい知識を付けるというよりかはとりあえずプログラミングの勉強、トレーニングをしたい人におすすめなのではないかなと感じました。
動画を見ながら勉強したい方はpaizaやUdemyを利用したほうがいいかもしれません。
とはいっても、どのサービスにもそれぞれ異なる特徴と目的を持っており、選択すべきサービスは学習目的やニーズによって異なる場合があります。初心者の場合は、自分の学習目標や好みに合わせて、どのサービスがより適しているか考えると良いでしょう。