AtCoderのStreakが100日目になった

 

はじめに

2020年4月17日にAtCoder ProblemsでカウントされているStreak(AtCoderの連続新規AC)にて100日を達成しました.競技プログラミングを真面目に勉強し初めて100日たったので,やってきたことの振り返りと次の100日間でやることを考える材料にするために一度文章に起こしました.(要約:競技プログラミングの問題を100日連続で解いたので振り返りと感想を書きました.)

指摘点やアドバイスなどあれば記事のコメント欄かTwitterのリプライにて教えていただけますと幸いです,よろしくお願いします.

記事を書いている人について

関西の大学にいる学部4回生 だいちゃん です.

大学生からパソコンを触り始め,これまでiOSアプリをリリースしたり,Web系企業のサマーインターンに行ったり,最近では元バイト先の友人たちとWebアプリの開発をしているなど,プログラミングを用いて何かをすることが好きです.研究は3次元の点群データに関することをしています.情報系の学部ですが文理融合の学部で数学の単位から逃げてしまったので数学力は大学受験から止まっています,大変です.

AtCoder ID:tottokodaichans

Twitter@kgrlizst

私が競技プログラミングをやっているモチベーション(2020/4/17 地点)

主に以下の3点です.

  • もの作りのプログラミングに時間をかけていたのでフレームワークやツールの知識はそこそこについていたが,研究の開発などでデータを扱うプログラムを書いた際にコーディング力が低いこと気がついた.
  • もともとコーディングに限らず計算機科学の分野の普遍的な知識が欠けていることをコンプレックスに感じていて,その分野の勉強の一つとしてデータ構造やアルゴリズムの学習をしようと思った.
  • 先輩と来年の2021/03/31を締め日にしたレートの勝負をしていて,勝って靴を舐めさせたい. 

100日間の結果

f:id:kgrlizst:20200417180324p:plain

取り組んだコンテンツ

Streakを続ける前にも少しやっていたのでAC数はこれまでの合計です,期間中取り組んだ問題は400問弱です.このStreakを始める前は竸プロについて特に勉強していなかったので,学習したアルゴリズムなどに関してはこの100日の間のものです.

AtCoderのコンテンツ(551AC)
  • リアルタイムのコンテストに16回参加
  • APG4bを最新の更新まで1順
  • AtCoder Beginner Contest 478問
  • AtCoder Regular Contest 65問
  • AtCoder Grand Contest 10問
  • その他,企業コンテストの過去問やEDPCなどの問題
読んだ書籍・記事など
その他
  • 所属している勉強会で竸プロ合宿をやった.
  • 最近1週間ほどはバチャコンに毎日参加している.

勉強したアルゴリズム・データ構造

  • C++STLに搭載されている基本的なデータ構造
  • GCD・LCMや素数判定など
  • 全探索
  • 二分探索
  • DFS・BFS
  • 動的計画法
  • ダイクストラ
  • ワーシャルフロイド
  • 逆元(modint)
  • 累積和
  • しゃくとり法
  • グラフの隣接行列,隣接リストでの表現

学習の方針は以下の記事を参考にさせていただきました,ありがとうございます.

qiita.com

主な成果

AtCoderにて
  • レーティング:395 -> 672(+277)
  • パフォーマンスの自己ベスト:738 -> 1144(+406)
  • パフォーマンスの平均も1色分ほど上がりました.
日常において
  • 毎日欠かさずパソコンを開いてプログラムを書く習慣ができた.
  • データ構造やアルゴリズムに関する知識が増えた.
  • データ処理に関するプログラムを書くスピードがかなり早くなった.

感じたこと

毎日欠かさず新規ACをすることについて

他の方の精進ブログにも書いてあることですが,1日1回竸プロに取り組むことが出来ることを習慣にするにはとてもいい手段だと感じています.自分の場合,虚無ACで繋いでしまう日も15日くらいありましたが,どこかで見た「やらない努力より,やる惰性」がいいなと思っているので毎日パソコンを開くきっかけにもなるので有効な習慣だと考えています.また最近,朝活を1週間くらい続けていますが,こちらは継続するのにかなり気力がいるので大学の休校期間(4月中)だけ続けようと思います.

学習コンテンツについて

競技プログラミングをする上で,コンテスト参加,過去問(解説動画付き)のコンテストサイトに加えて,有志の解説記事やAtCoder Problemsの便利なサイトなど学習しやすいコンテンツが揃っていると感じました.いつも大変お世話になっております.

以下に私が普段使わせていただいているサイトの一覧を記載します.友人から教えてもらって一気に勉強しやすくなったので,初心者の方など見てみるといいかもしれません.

 

AtCoder

atcoder.jp

AtCoder Problems

https://kenkoooo.com/atcoder/#/table/

 

けんちょんさんのQiitaの記事(ピックアップの過去問精選10問は初学者に特におすすめ)

qiita.com

次の100日間でやること

課題

  • E問に手が付けられないことによるパフォーマンスの頭打ち.
  • 深い考察が出来ていないことによるコーナーケース回で事故る.
  • 50行を超えるプログラムを時間内に書ききれない.
  • アルゴリズムは足りているが,使い所を逃すことが多い.

取り組むこと

  • 引き続きStreakを切らさない.
  • 4月中は朝活に毎日参加する.
  • 考察を深めるためにコンテスト後の解説をE, Fまで取り組む.
  • 水diff以上の問題に取り組む.

目標

  • コンテスト中にE問を解き,水パフォを出す.
  • 茶色パフォーマンス以下を出さない.
  • レーティング900↑

終わりに

締め括りの言葉は気が緩みそうなので「水色になりました」の記事で書きます.

ひとまず,ここまで読んでいただきありがとうございました.