LoginSignup
2
7

More than 5 years have passed since last update.

AOJを使ってアルゴリズムの勉強をしよう

Posted at

こんにちわ
グローバスセンス株式会社のskanehiraです。

ぼく自身は凄腕のプログラマでも、まして一人前にプログラマではないですが
プログラムで一番大事なのはアルゴリズムじゃないかなと思っています。(当たり前…)

なぜ?

最初は言語を覚えればプログラムも書けると思っていました。

それは間違いではないが言語はあくまでも手段であって
プログラムを使ってものづくりが目的と思っています。

モノを作るにあたり、仕組みを考えたり
その仕組を実現するためのアルゴリズムを考えたりするので
アルゴリズムを考えれなければモノを作れません。

なので
プログラミングでは言語を覚えるよりもいかにアルゴリズムを組めるか
が大事になってくるじゃないでしょうか。

アルゴリズムを組めるのであれば
あとは言語でできることと出来ないことを把握しておけば
という感じかなと思います。

AOJについて

AOJ(AIZU ONINE JUDGE)ではアルゴリズムの問題をいくつかの言語を使って解いて
ソースを提出することで正解かどうかを判定してくれます。

メモリ使用量や実行時間も正解判定に含まれますので
効率良いアルゴリズムじゃなければ行けないです。

AOJのマニュアルはこちらで見れますので
使い方に困ったら見てみると良いと思います。

AOJを使ってみる

チュートリアルに沿って試しにやってみようと思います。
ユーザ登録は済ませておきましょう。

まずはHello Worldを画面に出力するだけのプログラムを作ります。
問題文を一通り読んだら一番右のアイコンをクリックします。

image.png

ソースをアップロードする画面に遷移するので
言語を選んでソースをペタッと貼りましょう。

class Main {
    public static void main(String args[]) {
        System.out.println("Hello World");
    }
}

image.png

ソースを貼ったら提出を押下するとジャッジの画面に遷移します。

image.png

ここでは提出したプログラムの判定結果が載っています。
結果がAcceptedになっているので、正解ということです。

どんな結果があるのか、マニュアルに載っています。
image.png

最後に

こういった競技プログラミングは
1人で解くのもありだし、仲間と一緒に解くのもありと思います。

楽しく、そして解いた時の達成感を感じれるところが成長につながるのではないかなと思います。

今の世の中にはプログラミングを学ぶのに沢山のサービスが存在していますので
今後は素晴らしいプログラマが沢山生まれてくると思います。

置いていかれないように自分も頑張ります。

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