ZeroJudge 怎麼用?新手從註冊到解題的完整入門指南

最近,我還在念高中的妹妹跑來問我一道程式題目,這讓我有點驚訝,因為她從來沒寫過程式。我問她怎麼突然對程式感興趣了,她傳給我一個網站,說是學校老師在課堂上帶著他們一題一題練習。我點進去一看,發現這個網站很不錯!今天就來分享這個平台,推薦給想學程式的初學者。
ZeroJudge 是什麼?

ZeroJudge 是一個線上解題系統,簡單來說就是讓人可以練習寫程式的地方。雖然有些人會用不同的中文翻譯,但大家通常直接叫它 Online Judge 系統。
這個平台是專門為學生或程式新手設計的,裡面有各種題目可以讓初學者挑戰,還能馬上檢查你寫的程式對不對,真的很方便。
它的開發者江其勳老師,當時在國立高雄師大附中教書。他發現學生練習程式時,初級題目真的很少,特別是那些完全沒有基礎的同學,根本不知道從哪開始。老師試著找現成的系統,但國外的網站多半是英文,對初學者來說很不友好。而當時(2006)國內也沒有公開上線、免費給大家練習的系統。
江老師甚至考慮過用北京大學的 Peking JudgeOnline,但那個系統沒開放原始碼,功能上很難改成符合需求的樣子。最後,他決定自己動手開發一個新的平台,從零開始,這就是 ZeroJudge 的由來!
資料來源:STEAM 教育學習網
ZeroJudge 為什麼適合初學者?
- 免費使用,無壓力 ZeroJudge 完全免費,只要註冊帳號就能開始使用,不用擔心會有額外負擔。
- 中文介面超友善 如果你對英文不太熟悉,ZeroJudge 的全中文介面是新手的福音!完全不用擔心看不懂問題,讓你可以專心解題。
- 題目種類多,循序漸進 ZeroJudge 的題庫分為五大部分:基礎題庫、競賽題庫、IOI/APCS、UVa 題庫及原創/不分類題庫,涵蓋從簡單到進階的題目,幫助新手逐步提升能力。
系統還有題目討論功能,讓使用者交流心得,進步更快。這樣的設計讓新手能自然打好基礎,建立對程式設計的信心。 - 即時測試效率高 寫完程式碼上傳後,系統會立刻告訴你結果,讓你可以快速改進,不用自己瞎猜。
- 支援多種語言 ZeroJudge 支援四種程式語言: C、C++、Java 和 Python,讓你可以選擇自己最熟悉的語言來練習。
- 排行榜和討論區 系統還有排行榜功能,能看到高手的解題紀錄,學到更高效的解法。討論區也提供交流機會,讓學習過程不再孤單。
開始使用 ZeroJudge?
註冊帳號
到 ZeroJudge 官方網站 ,點選註冊。

進入後輸入資料。

選擇題目練習
在首頁的導覽列表點擊分類題庫。

進來後可以看到很多分類和題目,建議從簡單題開始,例如「A001:Hello, World」。

不過這裡我們就直接來解妹妹請我幫忙解的題目吧👉n130. p2. 製作看板
開始解題


看懂題目後,就可以開始寫啦~不過因為妹妹很急,所以我就直接找我的小幫手 – ChatGPT來解!
R, C = map(int, input().split()) # 讀取行數和列數
customer_text = input() # 客戶指定的文字
template = [list(input().strip()) for _ in range(R)] # 看板樣版
# 找到可以填入文字的所有位置
writable_positions = []
for r in range(R):
for c in range(C):
if template[r][c] == ".":
writable_positions.append((r, c))
# 計算留白並填充文字
writable_count = len(writable_positions)
text_length = len(customer_text)
left_padding = (writable_count - text_length) // 2
# 填充文字和留白
text_positions = writable_positions[left_padding:left_padding + text_length]
for i, (r, c) in enumerate(text_positions):
template[r][c] = customer_text[i]
# 輸出結果
for row in template:
print("".join(row))測試執行
ChatGPT 幫我把程式寫好後,就先來測試看看吧!確定測試 ok 後再提交,降低留下提交失敗記錄的機率。點選題目下方的測試執行。

點擊後,會跳出測試執行的視窗,這時候就可以將 ChatGPT 寫的程式填進去啦!
別忘了要選擇解題語言,輸入完畢後就可以點右下角的測試執行囉~

接著就會看到結果了。

看起來 ChatGPT 寫得不賴,看到表示成功解題的 AC 了。不過這裡的結果只是針對剛剛測資框框的資料測試,所以它只代表框框裡的測資通過測試,不代表程式真的正確。
提交程式
想知道這個程式能不能通過的話,只能提交程式了。點選送出解答。

送出程式碼的視窗跳出來後就可以把剛剛寫的程式貼上去了,別忘了要選擇解題的語言唷!都填完就點送出程式碼吧。

送出後耐心等待一下,就可以看到結果了。

大概就是這樣操作啦~如果看不懂評分結果的代號意思,在首頁有寫下各個代號的對應意思唷!
AC (Accept): 即表示通過
NA (Not Accept): 在多測資點的題目中若未通過所有測資點則出現 NA
WA (Wrong Answer): 表示答案錯誤,並在訊息中指出錯誤行數及正確答案
TLE (Time Limit Exceed): 表示執行超過時間限制
MLE (Memory Limit Exceed): 表示程序執行超過記憶體限制
OLE (Output Limit Exceed): 表示程序輸出檔超過限制
RE (Runtime Error): 表示執行時錯誤,通常為記憶體配置錯誤 如:使用了超過陣列大小的位置
RF (Restricted Function): 表示使用了被禁止使用的函式,並在錯誤訊息中指明使用了什麼不合法的函式。
CE (Compile Error): 表示編譯錯誤,並在訊息中列出完整錯誤訊息,以利判斷。 關於編譯器
SE (System Error): 包含 Compile, Runtime 等未定義錯誤均屬於 System Error
結語
如果你是剛接觸程式設計的初學者,或是想要提升自己解題能力的程式學習者,我非常推薦你可以試試看使用 ZeroJudge。這是一個專為初學者打造的平台,能幫助你進行練習與挑戰,穩步提升!
快來註冊 ZeroJudge,開始你的程式設計學習之旅吧!



