こんにちは!AtCoder 使用者 rinrion です。
在 2026 年 9 月 19 日舉行的 JIJ 程式設計競賽 2026(AtCoder Beginner Contest 476)中,我成功在演算法 Rating 達成綠色。
這是我參加 AtCoder 7 年 4 個月、參賽 193 回、54 歲 6 個月時達成的綠色。


趁著這個重要時刻,我想回顧一下自己參與 AtCoder 競賽的歷程。因為是 7 年的回顧,內容會相當長,若您願意的話,請陪我一起回顧。
我是 50 多歲的女性。育兒已告一段落,現在和兩隻被救援的貓悠閒地生活著。在註冊 AtCoder 之前,我沒有學過任何與程式設計相關的東西,也沒有業務上的程式設計經驗。
因為看到小孩在投入競技程式設計時看起來非常開心,我也想試試看。
在那之前,我一直過著和程式設計毫無關聯的生活,所以也曾擔心自己到底能不能做到,但比起不安,「好像很有趣」的心情更強烈。可以說是無畏,或者說有點莽撞。
首先我先註冊 AtCoder,接著開始學習 C++ 入門 AtCoder Programming Guide for beginners(APG4b)。
這個教材可以直接從題目頁面提交,所以即使像我這樣完全不懂環境設定的人,也能順利進行。到結構體那一章之後變得相當困難,所以我就先在那裡中斷了。
到了那時,我已經相當習慣寫程式並提交的流程。
接著我開始解 AtCoder Beginner Contest(以下簡稱 ABC)的歷屆試題 A、B 題。
同時也挑戰 AtCoder Beginners Selection 中難度較低的題目。
一開始完全不知道該寫什麼,所以我只是拚命模仿其他人的提交程式碼。
然後,在註冊 AtCoder 大約兩週後,我第一次參加了 ABC。雖然只答對了 A 題中的 1 題,但我記得當時非常開心。
我第一次參加的是 ABC127。那時總共只有 6 題。
之後的兩年,我持續參加 ABC。除了少數真的因為行程無法配合而沒參加的幾次之外,幾乎每回都會出席。
Rating 也順利成長,註冊 8 個月後的 2020 年 1 月,我成功達成茶色。然而,Rating 始終不太穩定,也曾一度大幅掉到灰色。
當時我做的精進方式,是「把 ABC 中沒解出來的題目解一遍,然後把解法記到試算表裡」。現在回頭看,只靠把沒解出的題目做一遍並記錄下來,似乎還不足以補足自己的弱點。比如說,對於在比賽中沒解出的題目,尤其是數學題,應該要反覆複習、讓它真正內化才對。
另外,比賽中如果 A、B 題花太多時間時,我也常常過度焦躁,這大概也是 Rating 不穩定的原因之一。
因為家庭因素,有一個月左右無法參加 ABC。
之後雖然恢復了可以參加的狀態,但 Rating 已經大幅下跌到灰色,因為害怕再繼續掉分,所以就不敢參加了。
在不參加 ABC 的期間,我有參加 AtCoder Heuristic Contest(以下簡稱 AHC),但完全沒有做演算法方面的精進。
當啟發式 Rating 變成綠色偏上時,我忽然想起演算法 Rating 還停留在灰色,於是又開始參加 ABC,希望能回到茶色。連續參加了幾次後也確實回到了茶色,但我滿足於此,之後又不參加了。
我偶然看到一篇關於升色的文章,受到刺激後,再次開始參加 ABC。這時候的精進內容,和以前一樣,仍然只是複習 ABC 題目。
然後這一年舉辦了 CodeQUEEN 2023。因為我之前從未參加過現場賽,所以很想出場,於是參加了預賽,結果成功晉級決賽。
比賽當天,我和許多女性競技程式設計者交流,度過了非常充實又愉快的時光。也因此我強烈地想著,還想再次晉級 CodeQUEEN 決賽;為了這個目標,也更想把演算法 Rating 提高。
之後我也持續參加 ABC 並精進,目標依然是再次晉級 CodeQUEEN 決賽。
不過,那段時間的精進重點放在學習新的演算法。因為心思偏向記住新東西,反而忽略了讓已經學過的解法與實作方式真正定著,所以 Rating 沒有如預期般成長。
接著迎來 CodeQUEEN 2024 預賽,因為焦躁感也加進來,結果無法發揮實力,最後沒能晉級決賽。我很失落,之後有一陣子都沒有參加 ABC。
幾個月後,大約在 2025 年 1 月左右,我又回到 ABC。這時我開始覺得:「是不是精進的方法有問題?」
但因為不清楚具體該怎麼做,所以還是沿用同樣的方法。結果在 2025 年的預賽也再次落敗。
到了這個時候,我終於開始認真思考,究竟要怎麼做 Rating 才會上升。
於是,為了處理自己最大的弱點——「已經知道的內容沒有真正定著」——我決定徹底重新檢討精進方法。具體做了以下幾件事。
為了消除造成 Rating 大幅下跌的原因,也就是「對別人很簡單、對我卻很難的 A、B 題漏答」,我針對過去在比賽中沒能答對的 A、B 題,以及 NoviSteps 的 10Q~6Q 進行對策。
特別是我很不擅長數學題,例如避免溢位的式子變形、小數誤差、XOR 運算、位元運算等,所以我會請 AI 解說到我理解為止,並反覆練習直到記住。怎麼樣都記不住的部分,則會加上關鍵字記到試算表中,方便之後立刻查找。
特別是在堆疊、佇列、遞迴函數方面,我的理解加深了很多。
因為我對 DP 一直有畏懼感,所以開始挑戰。
在做解法分類題庫時,我注意到連續解很多道類似題型,理解會變深,記憶也更容易定著。也因此,後來在參加 ABC 時,只要遇到沒解出的題目,我就會從歷屆試題中找類似題來做。
另外,即使是使用相同演算法的題目,如果因為輸出內容不同而必須改變實作方式,我也總是會搞混,所以我會調查差異,直到自己完全能接受為止。
到了 2025 年底左右,我聽說「ABC 對策只要解 ABC212~318 的範圍就好」。
由於我過去考過的資格考試(英檢、建設業經理士、基本資訊技術者)都是靠「背熟歷屆試題」通過的,因此我把「把 ABC212~318 的題目、解法、實作程式碼全部背起來」作為精進目標。
A、B 題只針對我不擅長的數學題,C、D 題則以 NoviSteps 的 1Q 為範圍。
此外,因為過去的經驗讓我知道,只解一遍是記不住的,所以我決定反覆多輪進行。
第一輪做的是以下作業:
・思考解法,並用解說確認
・一邊看解說程式碼一邊實作
・用短句整理題目內容與解法
目前則進行到第二輪,作業如下:
① 確認能不能立刻想到解法
由於目標是背下「題目與解法的一對一對應」,所以能否應用到初見題目這點其實有些微妙,不過這一步的目的,是增加可用的解法庫並讓它們更加定著。
② 確認在已經知道解法的情況下,能不能順利實作
③ 用手繪方式畫出題目內容與思考過程的圖解
在那之前,我總是在比賽中嫌手繪麻煩,把題目理解與思考全部在腦中完成。結果常常誤解題意,或是理解題目花掉很多時間。
因此,我決定在比賽外反覆繪製,讓手繪成為習慣。
持續這樣做之後,我在比賽中也能畫圖了,將題目簡化並連結到解法這件事,比以前做得更好了。
對過去的我來說,我想這種練習和增加解法庫是必須同時進行的。
① 可以利用通勤電車等空檔時間進行,但② 需要在電腦前的時間,③ 則需要能使用 iPad 的時間,所以進度有些不同。結果就是,同一道題會隔一段時間反覆練習,這似乎也有助於記憶定著。
從這個時期開始,我在比賽中一邊畫圖,一邊更常浮現出解法。而且因為畫圖讓題目理解更順暢,我也不像以前那樣過度畏懼 D 題了。
之後從 4 月左右開始 Rating 上升,雖然 6 月左右曾一度下降,但又再次回升,最後在 9 月成功達成綠色。
而且更令人高興的是,我也時隔 3 年再次晉級 CodeQUEEN 2026 決賽!當天不只是和熟識的人,也和許多初次見面的人交流,度過了彷彿夢境般愉快的時光。
我相信明年也一定會舉辦,所以為了再次前進決賽,我會繼續努力。
我曾從好幾個人那裡聽說:「即使精進方式對自己有效,也會有一段時間的延遲,效果不會立刻顯現。」
我原本半信半疑,但自己在改變精進方法之後,過了一段時間,Rating 真的突然開始上升。親身經歷後,我才知道這個傳聞是真的。
回頭看,精進的效果並不會立刻反映在 Rating 上,而是先讓自己能做到的事情增加,之後才轉化成 Rating 的變化。
這 7 年多來,我試過各式各樣的精進方法。有些方法效果很好,也有些幾乎感受不到成效。
回顧起來,依照每個階段自己的課題去調整精進方法,似乎才是 Rating 上升的關鍵。
今後我也會參考別人的精進方式,思考當下的自己需要什麼,並持續嘗試各種方法。
感謝您看到這裡!
在這 7 年多之間,我曾有好幾次離開 ABC。即使如此,我至今仍能持續下來,都是因為各位親切地與我交流,以及即使沒有直接交流,也一直分享競技程式設計內容的各位。真的非常感謝。
今後只要頭腦和身體還撐得住,我也會繼續享受競技程式設計。