エンジニア35年定年説からのAtCoderデビュー

気づいたら、組み込みソフトエンジニアとして10年以上働いてきて、エンジニア定年説35歳を超えてしまった。

色々と思うところがあり、以前から興味はあったのだが、プロコンをはじめてみようと思う。3日坊主にならないように記録をつけていきたい。

始めようと思った理由は以下な感じ

  • 徐々に名ばかりリーダー業務が多くなってきてコーディングから離れてきた
  • 社内スキルでなく汎用スキルも身に着けたい
    転職市場だと今貰っている給料の価値は自分にはないと思われる
  • そもそもまともにアルゴリズムを学んだことがない
    配列とリストとマップ知ってればなんとかなる仕事
  • まあ組み込みってそんなもんなんだが、、、
    設計の方が力を入れる。昔ながらのウォーターフォールなので
  • 特にミドルウェアだと別部署とのIFを決めた時点で仕事の半分以上は終わっている感覚。社内調整がいちばん大変。
  • 実装はあまり重要視されていない
    協力会社さんに実装からパスするくらいだから
  • なんか、愚痴みたいになってきた、、、

事前にやったこと

qiita.com

良記事だと思う。
ある程度プログラム書いたことあって、プロコン未経験者はすんなり入っていける
ちゃんと10問は解いた。
stdを普段使わないので、cinの仕様であたふたしてしまったw

A, B問題は日本語が読めて、if, forが使えれば解けるかなぁといった感触
C問題は相性次第か、、
D以降はわからん、、

初戦

atcoder.jp

ロードレースの初戦的なちょっとドキドキしながら開始

A, Bはわりとすんなり解けた。Acceptが出るとうれしい!

Cで割と時間を使ってしまった
途中で、「1stepごとにBestな更新をしていけいいのでは?」と気づいてなんとか突破。解説動画でわかったがこれが「貪欲法」らしい。はるか昔に習った気がするが。。

ここまでで1時間弱。
D問題はさらに苦戦。10^100のループは太陽系が消滅しそうなので回せないことはわかるが、解がわからん。R-Lの並びに入ると、ここをループするので収束するんじゃね?までは思いついて、スパゲッティコードになりつつ何とか実装完。
提出すると無情にもいくつかのTestCaseでTimeExceedが、、いろいろ試したがGive Upで終了

結果

f:id:on713:20190805224802p:plain

とりあえず、茶を目指して頑張ろう!