Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

デスマコロシアム文字列計測不備に関しまして

概要

デスマコロシアム文字列計測不備に関しまして

経緯

以下の様なご指摘を頂きました。

デスマコロシアムの文字数計測がおかしい(仕様)のはどうなんだろうか。
Ruby のメソッド使ってるらしいけど、\\が1とカウントされて得してるんだが

Ruby の String の挙動を確認

p "1234\\".size # => 5 (例1)
p '1234\\'.size # => 5 (例2)
p DATA.read.chomp.size # => 6 (例3)
__END__
1234\\

ideone による動作確認

上記より、
文字列リテラルを利用していると \\ は1文字。
ファイルから読み込んでいると \\ は2文字。
で計測されています。

__END__ 以下の内容は DATA 変数を利用することでファイルとして取得できます。
chomp は末尾の改行除去です。

デスマコロシアムの文字列集計

自動計測

細かいフォーマットはお知らせできないのですが、解答していただいたコードをファイルから取得して Ruby の String#size で文字数計測を行っています。 前述の (例3) の方法になります。

手動計測

自動計測とは別に手動計測で突き合せも行っています。
手動確認を行っている理由ですが、提出フォーマット外で自動集計が正しく動作しなかった解答への対応のためです。
フォーマット通りに提出している方も念のため確認を行っています。

この手動確認は (例2) の方法で行っていました。

今回の計測不備はこの作業が原因と考えられます。

今後の方針

自動計測時は今まで通り (例3) のままです。
手動計測時も (例3) と同じ方法で確認します。
これで、ずれがなくなります。

お詫び

この度は集計ミスおよび、事後対応の誤報などでお騒がせして申し訳ありませんでした。
ご集計の、ご指摘誠にありがとうございます。
また、事後対応時にご協力いただいた挑戦者様誠にありがとうございます。