三流プログラマの戯言

プログラミング初心者が気になったことを書き綴るだけ。主にc#

AtCoderで茶色になるまでにやったこと/あったこと

先日(2019/09/21 )のAGC083にてついに茶色になることができました。
f:id:unidentifiedexe:20190922092607j:plain:w500
AtCoder界隈では色変したらブログを書く慣習があるようなので書いてみます。
茶色でこの記事を書くのは自分ぐらいだと思います。
茶色になったわけですが、使用言語はbrainf*ckです。ratedにはbrainfu*ckでしか出ていません。
なので、この記事はbrainf*ckの記事になりますし、普通の人には参考になりません。

目次

やったこと/あったこと

時系列に近い形で、やったこと(とあったこと)を記述します。

開発環境を整える

AtCoderやってる人なら当然ではありますが、開発環境を整えるのは結構重要だと思います。
AtCoderのコードテストでも可能ではありますが、やはり貧弱なので良い開発環境を整えたいところです。
brainf*ckはネット上で実行できる環境もありますが、どれもイマイチに感じます。
理由としては、ブレイクポイントを設置できない というところです。
デバッグ用にステップ実行できるものがほとんどですが、コード長が長くなるとステップ実行しないといけない量もかなり多いのでそれだけで時間を取られることになります。
そこで、開発環境を自作しました。

過去問を解く

過去問を解くことにより自分の引き出しの数を増やしていきます。
普通の言語以上に引き出しの数が重要となる言語なので、茶色でも要求される引き出しの数は多いです。

ライブラリを整理する

レートを上げるためには早解きも重要になってきます。
brainf*ckでは一般的な言語で簡単なことでも、コードが複雑になりがちです。
また、少しでも間違っていると、遠い場所で結果がおかしくなることも少なくないので、ライブラリを作ることは大切です。
ライブラリといっても高度なものではなく、入出力、積算、剰余などです。

Twitter

Twitterで強い人と仲良くなると色々と嬉しいです。
ほかの言語とかだとわからないですが、brainf*ckは人口が少ないので、「brainf*ckをやってる」ってだけで、brainf*ckの強い人と絡めるのは大きいです。いろいろ話を聞けたりします。
また、brainf*ckをやっていない人でも、いいねをくれたりして自己顕示欲をみたせるのでとてもいいです。 囲ってもらえますし。

マルチバイト変数のライブラリを整理

AtCoderで採用されているbrainf*ckの実行環境ではメモリの数値は255までしか格納できません。
しかし、当然のごとく255以上の整数を扱える必要があるので実装しました。
実装した項目は、インクリメント、デクリメント、加算減算、入出力、比較あたりです。
一応、積算と剰余計算も実装はしました。

煽る

直接関係ないですが、Twitterで仲良くなった人を煽りました。

煽られる

直接関係ないですが、Twitterで仲良くなった人に煽られました。

茶色になって

茶色になって特に何か変かするわけではありません。
ただし、茶色になる過程で、brainf*ckの language owner になったり、AC数が500になったりしました。 また、brainf*ckでは数列の要素数10,000を超えるとかなり厳しくなるために、簡単なB問題でも解けない場合があるので、
実はABCよりもAGCの方がレートが上がりやすかったりします。(というか新ABCになってレートが上がりにくくなってないですか?)

謝辞

無事茶色になることがで来ました。
これもひとえに、いろいろ教えてくださったbrainf*ckの上位陣(主に現在2~4位のお三方)、
brainf*ck自体はやっていないものの、自分の精進を陰ながら見守ってくださった、チョコラスクさんけんちょんさんを始めとする方々、 brainf*ckに興味を持って、自分に絡んでくださってる方々、
その他大勢の人のおかげでここまでこれました。 応援ありがとうございます。

今後について

brainf*ckで茶色になることと language owner になることを目標に頑張ってたので、今は目標がないです。
brainf*ckで緑を目指すのはただの苦行だと思うので、やる気にはなれないです。
一応ABC後に茶色になるまではbrainf*ckで行こうとは決めているのですが、そのあとは別言語(難解プログラム言語ではない)にも手をだそうかと思います。
ただ、コンテストでbrainf*ckで解けそうなな問題はbrainf*ckで解いていきたいなとは思っています。

あと、いい加減、brainf*ckの基本的な記事と、マルチバイト変数の記事を書きたいと思っています。

後書き

毎回虚無の記事を生成してすみません…
コメントとかもらえると喜びます。