カメヲラボ

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

CodeIQ過去問集16:3年C組の成績表

本稿はCodeIQで2014年2月3日~3月10日に出題された コード銀行:3年C組の成績表 という問題を再編集したものです。 ※出題時と記述が一部異なる場合がありますがご了承ください。

3年C組の成績表

【問題】

愛求中学校の3年C組で、実力テストを行いました。国語・数学・英語・社会・理科5科目の採点結果が、CSVファイルに保存されています。このファイルを読み込み、個々の生徒について、科目ごとの順位と、5科目合計点の順位をそれぞれ算出し、結果をCSVファイルとして出力するプログラムを書いてください。

【問題の詳細】

・順位づけの方法

点数が高い順に、1, 2, ...と順位をつけるだけですが、同じ得点が2人以上の場合は同じ順位になり、それより下の点数は順位がずれていきます。 たとえば、80点が5位で2人いたとすると、79点の人は6位ではなく7位になります。80点が3人いれば、8位になります。

csvファイルについて

csvファイルの文字コードShift_JIS、改行コードはCR+LFになっています。 出力データに関しては、文字コード・改行コードの指定は特にありません。

・出力データの項目名

国語・数学・英語・社会・理科の順位に加えて、合計点の順位も出力することになりますので、1行目の項目名に「合計」を追加してください。

・その他 本問の記述に関してあいまいな部分があると判断した場合は、どのように解釈・対応したかを、ソースコード内にコメントとして記述してください。

・テストデータ seiseki_3c.zipをダウンロード、展開すると、以下のファイルが含まれています。

  • sample_input.csv

  • sample_output.csv

サンプルのデータです。まずは、sample_input.csvを読み込んで、sample_output.csvの内容と完全に一致するデータを出力できるようにしましょう。

  • class_3c_input.csv

  • class_3c_output.csv

テストデータです。class_3c_input.csvを読み込んで、class_3c_output.csvの内容と完全に一致するデータを出力できるようにしましょう。

[解説あとで]