ショートコーディング:きのこ危機一髪
約半年ぶりに、CodeIQでショートコーディング問題を出題しますよ!
https://codeiq.jp/q/1376
前回からの変更点
ランキング
これまでの出題とは違い、途中のランキング発表を本ブログで行うことにしました。
運営さんを経由しないので、集計→発表までの遅延がほとんどなくなります。
とはいえ、ある程度解答が提出されてからになりますので、週に1〜2回程度の更新になると思います。
ジャッジシステム
出題の度に悩んでいるのですが、今回もIdeone.comを利用します。
ある程度効率的に採点したい・できるだけシビアに採点したいということがありまして、今回は以下の手順でテストを行います。
- (1)Ideone.comでテスト(1つのテストケース)
まず、Ideone.com上で1回だけテストします(テストケースは秘密)。不正解ならそれで終了。正解ならステップ(2)へ進みます。
- (2)ローカルのジャッジサーバでテスト
Ideone.comとは環境が異なりますが、近い環境を用意してあります。そこで複数のテストケースを使って強めのテストを行います。もし不正解になるケースが見つかったら、そのテストケースを用いて再びIdeone.comでテストを行います。正解ならテストを継続、不正解なら終了します。
すべてのテストケースで正解なら、ステップ(3)へ進みます。
- (3)再びIdeone.comでテスト(複数のテストケース)
最後にもう一度、いくつかのテストケースを用いてテストします。不正解のケースがあればそこで終了、すべてのケースで正解すれば、記録として認定されます。この段階で不正解になることはたぶんありませんが、念のためチェックしておきます。
ショートコーディング問題に初めて挑戦する方
Ideone.comでCを選ぶとコードの雛形が表示されますが、無視してかまいません。たとえば、次のようなコード
#include <stdio.h> int main(void) { // your code goes here printf("Hello World\n"); return 0; }
は、
main() {printf("Hello World\n");}
でもOKです。return 0と書いていないのでmain関数が0を返さず、実行結果の部分に「Runtime error」と表示されていますが、標準出力の内容が正しければ問題ありません。
ショートコーディング?ナニソレ
という方は、
C言語によるショートコーディング入門編解説その1〜中級の壁を突破するために
C言語によるショートコーディング入門編解説その2〜上級の壁を突破するために
あたりをご覧いただくと雰囲気を掴んでいただけると思います。
もちろん、普通にコードを書いていただいても結構です。