競技プログラミングたのしい
昨日、プログラミングのスキルテストを受けて、プログラミングの問題を解くのが楽しいと思った。それと同時に最後の問題が解けなくて悔しいという思いもあった。これを機に AtCoder をやってみようかなという気持ちになり、昨日 (というか今日の明け方に) AtCoder にアカウント登録した。
で、まずは手始めに ABS を解くことにした。とりあえず半分くらいまでやった。やっぱりプログラミングの問題 (競技プログラミング) 解くのは楽しい。
思い返せば、大学 1 年のころのプログラミング演習がめちゃくちゃ楽しかったなあ。わざわざ土曜日に大学のコンピュータルームに行ってプログラミング演習で解いた問題を改良して遊んだりしてたっけ。
問題を解くだけとはいえ、せっかくプログラミングをしているから、GitHub に公開することにした。
https://github.com/noraworld/competitive-programming
プロダクトではないもの (勉強や一時的にしか開発しないプロジェクト) は second の organization のほうに作るのだが、競プロは自分の興味が続く限りはずっと問題を解き続けていくことになるのでメインのアカウントにリポジトリを作成した。
このリポジトリを見れば自分がどれだけ競技プログラミングの問題を解いていったかがわかるので良さみ。
それから、競技プログラミングではいくつかの入力値に対して適切な出力がなされるかがチェックされるのだが、その入力値をローカルにダウンロードできて、ローカルで入力値すべてに対してプログラムをテストできるツールがあったのでそれを使うことにした。
https://github.com/kyuridenamida/atcoder-tools
このツールは Python でできていて、Homebrew ではインストールできないっぽいのでまず最初に Python の環境構築をしていた。
なぜか pyenv で Python をインストールする際に binutils がインストールされていると失敗するので、一旦 binutils をアンインストールしてからじゃないと Python がインストールできなかった。
【追記】せっかくなので Qiita に簡単な記事書いた。https://qiita.com/noraworld/items/72759a26dc8773667d5d
Python はほとんど使ったことがないから若干手間がかかったが、なんとか環境構築できた。dotfiles にも反映させた。
AtCoder Tools は入力値や出力値に合わせてサンプルコードをジェネレートする機能があるのだが、残念ながら Ruby には対応していない。それから複数の問題をまとめてテストしたかったがそれもできなかったり、--without-login
オプションが壊れていたりして改善の余地があった。なので PR 出したいなと思ってコード読んだり clone していじったりしていたのだが、いかんせん Python よくわからんのでよくわからんかった。なのでこれはまた追々。
今日はそんな感じかな。昼前くらいに眠気が来て集中力も切れてきたのでアニポケ見たりして眠気を紛らわそうとしていたが寝てしまって、起きたのは夜。とはいっても明日は午前中に会社に行くし、夕方にも面談があったりするのでまた寝ないときつそう。
睡眠記録
| 寝たの | 起きたの | |—|—| | 13 時以降? | 19 時前 |
昨日、昼夜逆転してしまって、明日は午前中に会社に行くから、今日は寝ないようにしようと思っていたのだが、眠気に勝てず寝てしまった……。
今日の夜、寝れるか……?
瞑想記録
| 時間 | 時間帯 | |—|—| | 15 分 | 21 時半ごろ |
やっぱり個人的に、瞑想は「気軽にやる」よりも「ちゃんと集中して」やるほうが良いかなと思った。前に瞑想を続けていたときよりも気がそれやすくなっているから、ちゃんと集中して前頭葉を鍛えたい。気軽にやるより、「メンタル改善」、「前頭葉強化」という目的を持って習慣化させたい。
今日の集中度はそこそこだった。後半が気がそれやすかったが、集中できるタイミングもわずかながらあった。
5 分という短い時間ですら呼吸に意識を集中し続ける (他のことに全く気がそれないようにする) のがこんなに難しいなんて、人間の脳は意外に融通がきかないものだ。
今日の気づき
競技プログラミングたのしい。
成長記録
Python の環境構築した。
開発日記
競技プログラミングのリポジトリ作ってちょっとだけ問題解いた。あと Python の環境構築した。
気分レベル
8
今日の気分はどうだったか
競技プログラミング楽しかったし意欲的になれたし、気分は良かった。