Slide 1

Slide 1 text

趣味の競プロのために、 本腰入れて環境整備してみた Oct 25, 2019 | #dasshimen #趣味テック 脱脂綿 ( @anchor_cable )

Slide 2

Slide 2 text

#趣味テック 2 About Me 脱脂綿 ( @anchor_cable ) 東京都内に住む脱脂綿(=Twitter名)系エンジニア ● 株式会社ゆめみ ○ サーバーサイドエンジニア ○ 7月1日入社 ● AtCorder登録は1年前 ○ 未だ灰色コーダー

Slide 3

Slide 3 text

3 アジェンダ #趣味テック 競プロで好成績を取るためには? 競プロを技術でハックする 競プロって何? なぜおすすめ? 1 2 3

Slide 4

Slide 4 text

競プロって何? なぜおすすめ? 1

Slide 5

Slide 5 text

#趣味テック 5 競プロ = 競技プログラミング AtCorder, Topcorder, yukicoderなど 仕様を満たすコードをいかに早く正確に書けるかを競う 難しいアルゴリズムを知らなくても、その場で考えれば分かるレベルの問題もある 正しい出力を返せていれば方法は問わないので、様々な解法が考えられる 正整数 N と、 2 の累乗数 1,2,4,8 があります。 これらのうち、 同じ 2 の累乗数をいくつ使っても良い ので、それらの和が N となるような組み合わ せを 1 つ求めてください。 組み合わせが複数考えられる場合は、そのうちのどれを出力しても構い ません。 例えば N=5 のとき、5=1+2+2 となることから 1 つの組み合わせとして 1,2,2 が考えられます。 例題(AtCorderBeginnerContest 021 A問題)

Slide 6

Slide 6 text

#趣味テック 6 競プロ楽しい、おすすめする理由 プログラミング自体が好きな人におすすめ プログラミング勉強していると言うと 「プログラミングしたいって、何か作りたいの?」と良く聞かれます。 別に何か作りたいとかじゃなくて、 コード書いて動いたぞと喜ぶのが好き、 という人にこそ競プロはおすすめです。 モノ作りは色々めんどくさいけど、 コード書くだけしたいなら競プロでいい!

Slide 7

Slide 7 text

競プロで好成績を取るためには? 2

Slide 8

Slide 8 text

#趣味テック 8 なるべく多くの問題を早く解く AtCorder Beginner Contest の場合 A問題、B問題はそれほど難しくない C問題から急に難易度が上がり、D問題からはアルゴリズムの知識が無いと厳しい そしてC問題であっても4582人(ABC143)は解いている その中でperformanceを競う以上、コーディング速度が重視される A B C D E F

Slide 9

Slide 9 text

競プロを技術でハックする 3

Slide 10

Slide 10 text

#趣味テック 10 競プロでやること 普通に解いていた時 1.問題文を読んで理解する 2.ローカルにファイルを用意する 3.コードを書く 4.実行する 5.サンプル入力を入力する 6.実行結果がサンプル結果と一致するか確かめる 7.ブラウザから提出する。

Slide 11

Slide 11 text

#趣味テック 11 競プロでやること 色々ツールを入れるとこうなる 1.問題文を読んで理解する 2.ローカルにファイルを用意する → 自動でコンテストの問題数分の作業ファイルを作成する 3.コードを書く 4.実行する 5.サンプル入力を入力する → 自動テストできる 6.実行結果がサンプル結果と一致するか確かめる 7.ブラウザから提出する → CLIからコマンド1回で提出できる

Slide 12

Slide 12 text

実演

Slide 13

Slide 13 text

#趣味テック 13 出た成果 A問+B問で5分切り達成 ABC127 継続的に過去問のA問、B問を解いて速度アップを図ってます。

Slide 14

Slide 14 text

#趣味テック 14 参考リンク AtCorder環境をatcorder-cli + online-judge-tools + Dashで構築する https://qiita.com/anchor-cable/items/98a0bf669513d47972d4 AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ https://qiita.com/drken/items/fd4e5e3630d0f5859067