カメヲラボ

主にプログラミングとお勉強全般について書いてます

ショートコーディング:きのこ危機一髪

約半年ぶりに、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〜上級の壁を突破するために
あたりをご覧いただくと雰囲気を掴んでいただけると思います。

もちろん、普通にコードを書いていただいても結構です。