この記事はSSSRC Advent calender 2023 7日目の記事として書かれています。
どうも~Ashaです。
前に投稿したのは5月のそとろぼ!に初参加してきました! になるので、半年くらい空きましたね。
実は僕、6日目の先輩と同く、毎年アドカレの7日目を担当していたりします。
-
とある1回生の日常 – 2021-12-07
-
GitHub Actionsはいいぞ – 2022-12-07
AtCoderとの出会い
競技プログラミングとの出会い自体は、実は結構早くて中高生の時に存在自体は知っていました。当時、数学オリンピックや物理オリンピックには(実績は何も残せませんでしたが)取り組んでいて、その系列として情報オリンピックの存在を知りました。
ですが、当時は授業で慣れてる数学や物理と比べ、プログラミングはあくまでも趣味でやっていたので、ハードルを感じて受験することはありませんでした。勿体ない...
大学1年生になって、夏インターンのコーディングテストで競技プログラミングっぽい問題が出て、全く手も足も出なかったので「これはやらなきゃ!!!」って感じで始めました。
当時、SSSRC内で憧れてた先輩もAtCoderを過去にされていたので、とりあえずその過去だけでも追い抜きたい!!!みたいなモチベも結構ありました。
Ashaの進捗
AshaはどれくらいAtCoderできるの?って話ですが、アルゴリズムが緑色、ヒューリスティックが水色という、AtCoder内ではなんとも微妙なラインです。
緑色ってどれくらい?というと、
- 学生ならかなり優秀。
- エンジニアとしてもある程度の安心感がある。論理的に複雑な処理の実装に対応できない、なんてことはなさそう、くらいには思える。データ量が多い現場など、計算量の多い処理が要求される現場でなければ、このレート帯以上を求める必要はほぼない。
chokudaiさん(AtCoderの社長さん)のブログより
と言われるくらいではあるのですが、AtCoderユーザーの中では上位30%ほどと、ちょっとできるくらいのラインです。それ以上を目指すとなると、結構ちゃんとグラフアルゴリズム等が使える必要が出てきます。
AtCoderの特徴と衛星
実際の問題は他のサイトなどで紹介されていますし、過去問はAtCoderのホームページにあるのでそちらをご覧ください。
AtCoderの特徴として、「計算量に制約がある」があげられます。AtCoderではほとんどの場合、
- 実行時間制限: 2 sec
- メモリ制限: 1024 MB
の制約があり、この制約を満たさないと誤答になってしまいます。
実際の衛星では、放射性体制や使用実績の問題から、PIC16F877をはじめとした少ない計算資源で制御や通信を行うことが多く、また、ウォッチドックタイマーを用いるので、似たような制約を気にする必要があります。
じゃあAtCoderをやった方が良いのか
じゃあAtCoderをやった方が良いのかというと、やったからと言って衛星のコードが書けるわけではありません。どちらかというと、通信系や姿勢系といった他の機能のことへの理解や組み込みプログラミングについての理解の方が大事です。SSSRCには今100人近くのメンバーがいますが、僕が把握している限りではAtCoderをしているのは3人くらいしかいません。
でしかし、競技プログラミングには競技性があり、楽しみながら成長することができるので、もし良ければ始めてみてください。
以上、Ashaからお送りしました!
明日のアドカレもお楽しみ下さい~