2016-04-18-01-競技プログラミングが苦手と気づいた - project-enigma

2016-04-18-01-競技プログラミングが苦手と気づいた

>> Site top >> weblog >> 月別アーカイブ >> 2016年04月のlog >> 2016-04-18-01-競技プログラミングが苦手と気づいた

最終更新日付:2016/04/18 17:52:42


競技プログラミングが苦手と気づいた

2016 年 04 月 18 日

無職の現在、普段やらないことを何かやってみようと思い、ネット上でお題をコーディングするというのを試している。制限時間があって、採点されて、それで順位を竸うというようなモノ。しばらくやってみて気付いたのは、自分はそういうのはあまり好きではない、ということだった。

競技プログラミングというのを本格的にやったことはないので良くわからないのだけれど、制限時間があると自分が納得の行くコードにまで仕上げることがマズできない。結果が同じなら早い方が高得点になるので、どうしても時間を気にしてしまう。時としてお題に潜んでいる微妙な部分を見逃してしまい、時間勝負以前にコードが一部のテストケースに通らなかったりもする。

別に誰かのことを悪く言うつもりはないのだけれど、「コードは正しく動作することが全て」と思っている人なら、時間勝負も楽しめるのかもしれない。しかし少なくとも自分はそうではないようだ。コードの良し悪しというのは『正しく動く』ことだけではないし、時間や空間という意味での性能だけでもない。可読性、対変更容易性、その他たくさんの要素がある。競技に時間の要素が含まれていると、どうしても『正しく動く』こと以外の側面を振り捨てることになってしまう。

また、入力データもある程度の条件が保証されるから、その保証の範囲内でだけエラー処理を書くことになる。そうなると、普通の(つまり入力データに保証がほとんどない)状況で作成されるコードと比べると、コードは非常にシンプルになる。そうなると、いわゆる「現場で書くコード」とはかけ離れたモノになるわけだ。そこもまた違和感を感じるところではある。

もちろん、ネット上のサービスとして機械的に評価を行う以上、正当性と性能以外の要素を評価することが難しいことはわかっている。数値化すること自体難しいし、主観にも左右される。だから「こういうもの」と思って取り組むべきなのだろう。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.