Eyes, JAPAN Blog > どうしてそれが解けなかったか

どうしてそれが解けなかったか

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

pict.JPG

私が参加する多くのプログラミングコンテストは、「3~10問程度の問題が与えられ、1~5時間程度の制限時間内に何問解けるかを競う」というスタイルをとっています。何年もコンテストに出続けていても、時間内に全問解いてしまうことはほとんどなく、毎回のように「宿題」を持ち帰ることになります。

さて、どうして自分にはその問題が解けなかったのでしょうか。振り返ってみると、その原因はいくつかのパターンに分けられます。
まず、単に時間が足りなかった場合。解き方は分かっていても、プログラムを書いている途中に、あるいはデバッグの最中にコンテストが終わってしまうことは、コンテストの性質上珍しいことではありません。
次に、その問題を解く有名な手法を知らなかった場合。特に、「この問題のためにこういった手法がある」ということは分かっても、その手法自体はまだ勉強していなかった場合などは絶望的です。論文にもなっているような難しい手順を一から組み立てることは簡単ではなく、自分の不勉強を呪いながらコンテストが終わるのを待つしかありません。(*1)

しかし一番悔しいのが、その問題を解く手法やアイデアを知っていたのに、それがコンテスト中に思い浮かばなかった場合です。後で他の参加者と議論するときになって、「そういえば似た問題を昔解いたことがあったな」と気付いたときの憤ろしさは、言葉で表せるものではありません。
自分で解決できない問題に直面したときにどう行動すべきか、咄嗟に判断することは難しいものです。そんなときこそ、今まで自分が見てきたものを、冷静に思い返してみるのが大切です。一見どうにもならない問題も、実は今までに解決したことのある問題と似たり寄ったりであるのかもしれないのですから。

*1 : 逆に、必死に考えた手法が実は既に論文となってよく知られていたと後でわかる場合もあるので困ったものです。

担当 : 田山(コンテストの後は大抵鬱)

  • このエントリーをはてなブックマークに追加

Comments are closed.