競技プログラミングに興味がある方へ
競技プログラミングについて
「競技プログラミングってなに?」 「競技プログラミングを初めてみたい」 「プログラミングの基礎を問題を解きながら勉強したい」という方を対象読者としています.
「競技」というとハードルが高く聞こえますが,求められるのは「要求を満たすプログラムを書くこと」ただこれだけです.
どのような問題が出るのか試しに1問見てみましょう.
AOJというサイトのプログラミング入門コースの第1問です.
「出力として Hello World を返すプログラムを書きなさい」という問題です.
多分みなさん頭の中でプログラムが思い浮かんだと思います.
もう1問見てみましょう.今度の問題は与えられたn個の整数の最大値,最小値,和を出力する問題です.
AOJ
こんな感じの問題が出ます.
どんなプログラムを書けばいいか,頭の中で思い浮かんだ方も多いかもしれません.
仰々しい名前をしていますが,名前ほどハードルの高いものではないということが分かっていただけたと思います.
サイトについて
AtCoderやLeetCodeなど色々なサイトがありますが,基礎コースの充実しているAOJを紹介します.
AtCoderの初心者向け問題はこちら
- まずはAOJにアクセスします.
AOJにアクセスし,右上のLoginボタンをクリックしてください.
- アカウントを作成します.
Create your account をクリックし,IDとパスワードを入力します.
- 問題を選びます.
問題セット->Course から Introduction to Programing Iを選び,ITP1_1_A:Hello Worldを選択します.
- プログラムを提出します.
問題を読み,プログラムを書き終えたら画面右上の提出ボタンを押して提出します.
サーバーに負担をかけないために,手元でプログラムが正常に動くことを確認してから提出してください.
また,タイトル下で英語か日本語か選べます.タイトル下には時間制限やメモリ制限なども書かれています.
今回はHello Worldと出力するプログラムです.
- 結果を見ます.
Acceptedと表示されていれば正解です.
また,エラーが起きた場合はその種類が確認できます.
Memory Limit Exceeded: メモリ制限超過
Wrong Answer: 答えが違います
Compile Error: コンパイルに失敗しました
Runtime Error: 実行時エラー
Presentation Error: 無駄な改行 スペース 大文字・小文字が違うなどの些細な間違いがあります
今回の問題であれば,スペースが足りない 小文字になっている 改行がないなどの理由でPresentation Errorになる場合があるかもしれません.
おわりに
今回はAOJの基礎コースの問題を紹介し,競技プログラミングとはどのようなものなのかを紹介しました.
競技プログラミングに興味を持たれた方はAtCoderのコンテストなどにも挑戦してみるといいかもしれません.
AOJの基礎コースを解き進めていきたい方で解答例を確認したい方は,ぜひこちらのページもご活用ください.(AOJでも解答例が確認できます.)