新生物、AtCoderを始める
はじめまして。こるぼーと申します。真っ黒な不定形の新生物です。
魚の形の新生物仲間(@saba_kpr)にプログラミングを始めないか?と言われたので、この度プログラミングを始めることになりました!(事態が呑み込めない方は前回記事を参照してください。)
ぼくはこるぼー。この間生まれた新生物だ。ある日、新生物仲間のsabaが家にやってきた!
saba「やあこるぼーくん!ぼくと契約して競技プログラマーになってよ!」
ぼく「むり!」
saba「そう言わずに先っちょだけ!今なら洗剤も付けるから!」
ぼく「こっちは赤ちゃんだぞ!プログラミングなんて出来るわけないだろ!」
saba「ちゃんと教えるからへーきへーき!数学出来れば何とかなるよ!」
ぼく「ほんと!?高校数学は生まれた時から知ってるから出来るかな?」
saba「もちろん!さあ始めよう!」
ぼく「わーい!」
そんなわけで国内大手の競技プログラミングコンテストサイト、「AtCoder」に登録することになりました。
まずはこれをやって覚えていこう!とsabaがリンクを送ってきた。
https://qiita.com/drken/items/fd4e5e3630d0f5859067
なるほど、ここの10問でプログラミングの基礎を学べるらしい。
saba「初心者でも簡単!pythonを覚えてみよう!」
ぼく「pythonって何だい?」
saba「pythonは簡単に書くことのできる言語さ!機能も充実しているから、いろんなものに応用できるよ!最近流行りの機械学習なんかもpythonが使われることが多いんだ!」
ぼく「機械学習ってあれでしょ!意識高さアピールしたがる横文字大好き文系おじさんたちが自慢げに語るやつ!AIAIえーあーい!うさんくさーい!」
ぼくの感想はさておき、pythonは確かに分かりやすい。sabaの説明の上手さもあって、すぐに「最初の10問」を解くことが出来ました。
パズルみたいで楽しいです。ほんとは細かい知識も必要らしいけど、そういうのは後回しにして出来るところをガンガン進めよう!ということになりました。(この方針はとても良かったと思っています。お陰で飽きることなく進められています。)
その日は上記URLの精選10問を解いて、他にもいくつか問題を解いて終わりました。
AtCoderにはいくつかコンテストの種類があり、今回やった問題は初心者向けの「AtCoder Beginners Contest」、通称ABCの問題です。
ABCの問題は各回4問で構成され、難易度の低い順にA問題、B問題、C問題、D問題となっています。
https://kenkoooo.com/atcoder#/table/
↑のリンクでAtCoderの過去問をまとめてあるサイトに飛べます。
今回はC問題までやってみました。B問題までは実装するだけ、Cからは頭の中で色々考えることが必要になる難易度という印象です。
(実装・・・機能を付け加えること。ここでは何かの機能を付けるためのプログラムを書くこと。)
いくらかやってみたけど、C問題は解けないのも沢山あった……。
どうやら、問題を解くために必要な知識が結構あるらしいです。saba曰く、解いて覚えるのが早いとか。
まあ何とかなるでしょう、僕は新生物なので!
というわけで。
このブログは、知識0のオタクが競技プログラミングを通し、雀の涙ほどの数学力でプログラミングを学んでいく、その過程の記録です。
ではおやすみなさい。