PGコンテスト

投稿者: 高 岳

最近の楽しみはショパンコンクールでいろんな人の演奏動画を見ることであります、高です!
今回は先日行われた、プログラミングコンテストについてです!

2回目のコンテスト

10/15に行われたPGコンテストですが、今年度2回目のコンテストでした!
1回目については以前ご紹介しましたので、気になる方はそちらの記事もご覧ください。

前回はSQLでしたが、今回はいわゆる「競技プログラミング」でした。

そもそも、競技プログラミングとは何かといいますと…TOPSICのサイトに書いてありました!

競技プログラミングとは、与えられた課題を参加者がプログラミングで解決する競技のことです。主に、プログラムの作成時間やプログラムの性能を競い合います。2時間程度で終わるものや1日かけて競い合うもの、競技内容もさまざまです。

ジャンルも幅広く、ゲーム、AIやセキュリティ、データマイニングなど複数のジャンルがあり、得意なものやこれから学びたいジャンルを選択するのが一般的です。

競技プログラミングは、基本的に正解数の多い人が勝ちますが、正解の数が同じ場合、解いたスピードの早い人が勝ちになることが多いです。現在、世界中でeスポーツが注目されていることはご存知でしょう。競技プログラミングはeスポーツと似ていると言われることもしばしばあります。

今回のルール

試験時間は90分。時間内に、難易度2(20点)、難易度3(30点)、難易度4(40点)の問題3つが与えられ、正答した得点によって順位が決まります!

ただ、これだと同点の人が多くなってしまうので、「正答までの時間」も順位に加味されます!

また、それぞれの問題で、正答するまで再提出することもできます。ただ、ペナルティが与えられ、正解までに出した不正解の提出数×5分、追加で与えられるルールとなっています。

個人的には、この再提出は良いバランスだと思いました。何度でもチャレンジできるので、あきらめず試行錯誤できるけど、でもなるべく不正解の回数は避けたい…といった感じで、非常に競技性が高いですよね!

プロコン初心者の対策

今回のような競技プログラミング、実は初めてでした。

そこで、事前に何問か、SIの製品のTOPSICで、トレーニング問題を解いてみました。掛けた時間は、トータルで5時間くらいでしょうか。

はじめは、今回のコンテストで出題されていない難易度1の簡単な問題ですら、不正解になっていました。
しかし簡単な問題でも時間をかけて調べつつ、考えながら取り組んだところ、難易度2までは余裕をもって、難易度3は問題によっては解けるようなレベルになりました!

初心者の私にとって一番難しかったのが、標準入力のところでした。簡単に説明すると、外から与えられた値をプログラムが受け取るようにしなければいけないのですが、ここのプログラムは今まで書いたこともなかったので、理解して慣れるまで時間がかかりました。

所感

自分にとって初めての競技プログラミングでしたが、難しくとてもやりがいのある内容だったと思います。ただ、解けたときのちょっとした達成感は嬉しかったですね。

練習問題を解く中で、1次関数の連立方程式を解いて交点を求める過程が必要な問題があったのですが、手で計算すれば中学生レベルのとても簡単な問題なのに、プログラムで書こうとすると非常に難しかったのも印象的でした。

今年度はあと1回、コンテストがあるので、また楽しんで解いていきたいです!

今回もご覧いただき、ありがとうございました!

この記事を書いた人

高 岳

高 岳

さいたま市歴14年、埼玉県歴20年のベテランさいたま人。
EC事業部の配属になりました。
一流の、技術力を兼ね備えたエンジニア・いろんな人に頼られるエンジニアを目指して日々勉強していきます。
よろしくお願いします!

p.s. 旅行もっと行きたいです。温泉に入って癒されたいです。

投稿者の記事一覧