2020/04/04 の日記です。ひどい出来でした。
目的
- 参加人数が多い為かよく話しを聞きます。とりあえず1回やってみて内容を確認したいと思います。
- 競プロやってる友達がアルゴリズム~とか言ってたので、アルゴリムについて考える機会になることに期待しています。
AtCoder
問題を解いて点数を競うやつです。
AtCoder Beginner Contest 161の結果と感想
結果: A問題だけ正解。パフォーマンス12、ratig 1。
感想(言い訳):
なんと21:00~22:40のところを20時に参加!一番慣れてるのがpythonなのでpython使うことは決めてましたが、jupyterじゃなくてコマンドプロンプトからやった方がやりやすいんじゃね?とかpcの不調でフォルダが開けないとかしてるうちにあんまり解けず。結果A問題しか回答出来ず。タイムオーバーしたものの、手をつけていたB問題はクリアしたところで第一回は終了。
時間との勝負なんすね。遅刻はダメです。
...というのは勿論なんですが。基本的な書き方をググりながら解いたのでその分のタイムロスがあり、それが点数に影響していたのは間違いないです。
というのも、私は「何かをすごくやっている人」ではないので必要に応じて使用言語を変えてまして、どの言語もちょろっとしかやってないため基本的な書き方を忘れてたりするので、条件分岐の書き方あってるかなーとか、こんな関数あったっけなーとかググりながらワサワサやってるわけです。記憶力が無いのがバレてしまいましたが、これは直すべきというのが明らかになりました。
あとは、今回のA問題は並び替えるだけなんですけど、操作を書かずに結論だけ出力すればクリアできます。でもこれってコードに反映されてなくていいのか?とか考えて無駄に迷いました。昔読んだリーダブルコードに、「コンパクトに書くよりも可読性を!」みたいな事が書いてあったのが頭をよぎりまして、「結果だけ出力するより過程も記述するべきなのでは?動作が読めないコードは微妙なのでは?」「いやそれだとただ無駄なコードだし変数もまるっきり無駄なのでは?」とか考えてしまって5分くらい無駄にしたという話です。コメントに書くにもいずれ限界が来ますし。
普段は「半年後の自分が読めて理解できるコード」を書こうという目標を立てていますが、これは競技プログラミングをやる目的と合致するのかしないのか、という問いが発生したのはうれしい誤算でした。
問題を解き始めてからは楽しかったので今後もぼちぼち続けていきたいと思います。お疲れ自分。
シリーズ化について
私は競争とか順位とか点数とかが嫌いなので続くかは分かりません。続けるためにatcoder日記を書きます。ロジックの事は書かないと思いますが、面白いなーと言うのがあったら書くかもしれません。
こんな私的なことをネットに流すのはいかがなものか、というのはありますが許してください。賢くなったら社会に貢献しますので...