7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【体験談】helloworld すら何回も落とした初学者から1年で AtCoder 緑になるまでの振り返り(と今後の予定)

7
Posted at

【体験談】helloworld すら何回も落とした初学者が、1年で AtCoder 緑になるまでの話(とこれから)

本記事は自分の漠然とした考えをgptを用いてまとめた記事です
何回も読みながら幻覚がないことは確認しました!

要約(30秒版)
・オンラインジャッジ 373日ストリークで“毎日手を動かす”を習慣化
・AtCoder 851まで到達、研究&インターンの実装力にも効いた
・しかし、学習のための毎日勉強が連続履歴維持のための“慣れた問題消化”へと変質してしまった
・そこで、毎日の問題解きから毎週新しい問題2つの深掘り
へ切り替える


はじめに

最初は helloworld も通らないタイプの初学者だった。
標準入力で詰まり、REで泣き、WAの理由も分からない。
そんな僕でも、1年で AtCoder 緑に届いた。やったこと自体は地味で単純、でも量を継続→質に変えるまで続けたのが勝因だったと思う。


1年前はこんな感じでした

  • 入出力のやり方もわからない
  • VS Code の存在も知らず、Colab で AtCoder 風の問題を解き続けていた

ちょうど一年前(2024/10)のコード

#bit演算?!
a,b=map(int,input().split())
if a>>b:
    print(">")
elif a<<b:
    print("<")
else:
    print("=")
# なにをしたかったんだろう、、、
a, b = map(int, input().split())
while True:
  if b/a == 0:
    print("factor")
  elif a/b == 0:
    print("multiple")
  else:
    print("neither")

今見ると笑えるけど、当時はガチで分からなかった。


何をやったか(ざっくり)

  • Baekjoon 373日連続:とにかく毎日1問以上。脳に「毎日やるのが普通」と教え込む

  • AtCoder:週末のコンテストは積極参加、復習ノートは翌日に必ず1枚

  • ノートの型を固定

    1. 制約 → 計算量の目安
    2. できるだけ自力で解く。TLEなら限界まで最適化して、それでも厳しければ友達に相談
    3. 新しいアルゴリズム/データ構造は、1週間はその類型だけを解いて慣れる

効いた習慣ベスト5 💡

  1. 「解説は最後」ルール:自分の仮説を書き切ってから読む
  2. バグに“名前”を付ける:off-by-one、未初期化、浮動小数…再発防止がしやすい
  3. 自作テストケース:エッジケースを意識して用意する
  4. 解いた問題を振り返り、ブログ発信(〜2025/6):解法の“骨”を言語化しやすい
  5. コードをつなぐ:1問完結で終わらせず、小さなライブラリ化を進める

黒歴史(でも肥やし)

  • while True: で無限ループ → REで気づく
  • sys.stdin.readline が分からず時間を溶かす
  • sys.setrecursionlimit を忘れて木DPで落下
  • Python の list をキューにして TLEdeque を使おう…)

成果(うれしかったやつ)

  • AtCoder 851 到達(緑)
  • 研究室では異分野スタートでも早期に戦力化
  • 国際学会で発表
  • 複数インターン参加 → 個人コードから協調開発

でも課題:ストリークが目的化してた

毎日ACは尊いけど、24時間の締切が「1問を掘り切る時間」を削る。
“解けそうな問題”だけを選びがちになり、学びの密度が下がるのを自覚。


今後:毎週2問を“深掘り”に切り替える

  • 難易度は AtCoder E帯以上

  • 深掘りの最低ライン

    • 解法2通り以上・計算量の根拠を書く
    • 境界ケース・反例のリスト化
    • 解法をブログに発信
    • 類題3問 → 慣れるまで集中的に取り組む
  • 余った時間は個人プロジェクトへ(機械学習・強化学習のプロトタイプ等)


メモ用テンプレ(コピペOK)

# 問題名 / 目的(1行)
- 制約: N≈?, M≈? → 目標計算量: 例 O(N log N)

# 解法A(素直案)
- アイデア:
- ボトルネック:
- 実装の落とし穴:

# 解法B(別アプローチ)
- 使うテクニック:
- Aとのトレードオフ:

# 境界/反例
- 例: N=1, all same, 極端値, ランダム

# 失敗ログ
- 現象:
- 原因:
- 再発防止:

# 類題と差分
- 問題X: 差分=辺重み有/無, 多始点 など

# 学び(1〜3行)

使った学習リソース(軽く)

  • コンテスト復習記事/公式解説
  • 初学者向けアルゴリズム本(グラフ/DP/数論の基礎)
  • 先輩の実装テンプレを読み込む(手を動かして真似 → 自分流に整理)

おわりに

毎日の小さな約束は、手を動かすようになる最短の魔法
でも、どこかで量→質に切り替える時期が来る。
僕は 週2深掘り+個人PJ で、次は 水色 を狙いにいきます。
同じ道を歩く初学者の方へ:今日の1問も、明日の1深掘りも、どちらも正しいが維持することが大事!頑張りましょう!!!!

記録

  • Atcoderレーティング
    image.png

  • 374日連続学習
    image.png

  • github連動
    image.png

  • 韓国のオンラインジャッジで200,000位から5,049位まで成長
    image.png

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?