今日で25問解いたそうです.
別にキリは良くないですが,感想を言いたい気分なので感想を書こうと思います.
難しさ
私は昔AtCoderに手を出して惨敗したことがあるのですが,その時に感じたよりは簡単でした.成長したのかもしれない.
易しめの問題はアルゴリズム自体よりもプログラミング言語の知識がボトルネックになって解けないことが多いのですが,その期間は全然楽しくないので,やはり当時はプログラミング知識ゼロで挑んだのが良くなかったんでしょう.今はある程度プログラミングに慣れてるので,それが大きいんだと思います.
ただ,「大学でアルゴリズムの研究をしてたくせにこの程度かよっ」て煽られそうな程度にはへたくそです.
ざぁこざぁこ.
もともと実力はないんだろうなとうすうす思ってたので,それを容赦なく可視化されたと言うべきか.
でも一応原因は考えましょう.
単純にアルゴリズムに対する理解が浅すぎることに加えて,真っ先に思い浮かんだ実装法を採用しがちという原因がありそう.実装前に考えて,選択肢を比較検討できてない.逆に初期に複数の選択肢を比較できるようになればもうすこし実行時間ランキングも上を目指せる気がする.ランキング上位陣も,魔法みたいなことはしてないことが多いので.
Rust
Rustのルールを覚えるのがしんどいです.新言語くらいへでもねぇよと思ってたけど挫折しそう.
RustのThe Book (そういう名前のRustの教科書がある)はいちいち良いことが書かれていて読むのが楽しいので,なんとか読みこなして Rust 使えるようになりたいけど難しいかも.
関数型プログラミング
数学(とくに圏論)と縁が深いとして有名な関数型プログラミング......やってみたいと思っていたのですが,そもそもLeetCodeは関数型プログラミングの学習には向かないみたいです.
Haskell も使えないですし.
Scala は使えるけど,ラーニングパスがないですね.
HackerRankなら関数型プログラミングを学ぶためのコースがあることを知ったので,登録だけしてきました.
Rust と同時並行か,またはRustを後回しにして関数型プログラミングの勉強したいなっていま皮算用してるところです.実務では特に使わないだろうけど,数学と関係があるとあらばスルーするわけにはいきませんのでな.
そんな感じです.引き続き「続ける」ことを目標にやっていきましょう.