AtCoderに入ってからしたことのメモ
最近AtCoderを初めました。今回は、数カ月後とかになって「あの頃何してたっけ?」とならないようにメモしておく記事です。登録当時の状態PCの環境Ubuntu18.04のまあまあのスペックのノートPCAtCoderについての知識AtCoderって何?ABCとかAGCとかよく分からん。(仕組みを理解してない)プログラミング関連の知識初めてのPythonを読み終えるくらいのPythonの知識HTMLとかCSSもやってた時期がある。Rubyはほぼ知らない。Cは触ったことあるけどC++は全く経験なかった。昔、苦しんで覚えるC言語のサイトをそれなりに見ていた。たしかWindowsで「学習用C言語開発環境」を入れて遊んでいた(気がする)。なのでインクリメントとかは知ってた。変数、関数、メソッド(若干)、引数、戻り値とかのワードの意味を知ってた。アルゴリズムの本を読んだことがあったが、全探索と言われても何をしたら良いかわからなかった。実際にプログラムするレベルではなかったし、そんなに知らなかった感じ。Raspberry PiとかUbuntuとかLinux系のOSを弄っていたおかげで、ディレクトリ移動とかsudo apt installとか、軽くnano使ってコンフィグファイルいじれたりした。サイト見ながらだけど。AtCoderを始めてから今までにしたことTwitterでAtCoder初めた宣言をしたするとAtCoder社長のchokudai氏からいいねがもらえる。フォローした。自己紹介のところに「AtCoder初めた」と書いて、ほかに「AtCoder始めました」とつぶやいている人をフォローする。モチベーションが上がります。(たぶん)APG4bを見たAtCoder Programming Guide for beginners (通称APG4b)を一通り見て、C++の使い方を勉強した。入力、出力についてもここで知れるのでオススメ。https://beta.atcoder.jp/contests/apg4bAtCoderの仕組みを知った週1くらいの頻度で、コンテスト(定期テスト)的なのが開催される。初心者向けのコンテストはAtCoder Beginner Contest(通称ABC)と言うらしい。ABCは1つのコンテストで4問出題される。A(易しめ),B(普通),C(無理),D(無理)と難易度が上がっていく(難しさは初めた時の主観)。この4つの問題を制限時間内に解く。「解く」というのはお題に合ったプログラムを作って提出して、OKをもらうことです。AtCoderにはランクがある。この人の説明がわかりやすいかも。https://twitter.com/freude111/status/1020245334998462470過去問に手を付ける次のコンテストまで1週間ほどあったので、過去問を解き始めた。過去の問題はAtCoder Problemsというサイトにまとめられている。A問題を埋めていった。A問題をすることで、int, string, vector<int> みたいなのの使い方を頭に叩き込めた。エディターを使う自分の場合はAtomを使ったが、エディタを使うと、 速く書ける ミスを検知してくれる キレイなコードにしてくれるといい事だらけなので使うことを推奨します。但しエディタの設定に時間がかかる。Atomの設定については自分の過去の記事に載せています。AtCoder○色になった人のブログを参考にする検索したら出てくる。「AtCoder水色になりました」みたいな。比較的ランクが近い人を参考にすると良いと思います。C++の本(初心者向け)を読んだポインタとか配列の使い方とか、色々ためになった。メモ初期に必要なのは数値や文字列、if、while、forループを扱う力だと思う。A問題でよくあるパターンとして、int a,b;cin >> a >> b;if(条件式){ cout << "Yes" << endl;}else{ cout << "No" << endl;}みたいなのが多い。vectorの操作にも慣れておいたほうがいいかも。A,Bでは基本の操作が問われる。使うアルゴリズムも全探索(forの中にforみたいなの)ぐらいかなと。深さ優先探索とかダイクストラ法とかはまだ知らなくてもいいかも。