Java プログラミング

Atcoderで茶色になりました

タイトル通りですがAtcoderで茶色コーダーになりました!!!!

色がついただけでも非常に嬉しいですね、早く緑コーダーになれるように頑張りたいと思います。

よく青色や黄色など高レートの人が○色になった記事はあると思うのですが茶色で書く人もそんなにいない気がするのでマジの初心者から茶色になるまでに学んだことを書いておきたいと思います。

Atcoder Problemsを使おう

Atcoder Problems はほぼ皆さんが知っていると思いますがAtcoderの過去問で演習できるサイトですね

最近は難易度表示なども追加されて非常に使いやすくなっています、本当にありがとうございます・・・

 

こんな感じで229問解いたそうです

実際にはもっと少なくても茶色は余裕だと思いますが自分はコンテストの開催タイミングに中々合わず過去問を解く期間が長かったため多めになりました。

実力+αの問題に時間をかけて取り組むのがレベルアップには必要だなあと感じながらも中々その気力が出てこずB問題とかC問題の簡単なので満足しちゃいます・・

 

動くからと言って解けるわけじゃない

今まで競技プログラミングに触れたことのない自分にとってはTLE(Time Limit Exceeded)の概念がありませんでした。動くだけではだめできちんと実行制限時間以内に動く事が必要なのです。特に最初はO(n^3)の全探索プログラムを書いて動いた!!!でも通らない!!なんで!!!ってなってました。

これをO(n^2)とかにする必要があるのです・・

速解きは大事

難しい問題を解けるのももちろん大事なのですが解ける問題を早く解くというのもレート変動に大きく関わってきます。

Atcoderにはペナルティという概念があってCE(complie error)以外の時は一回間違えるごとに最後に問題を解くのにかかった時間に+5分されます。なのでなるべく間違わないように多くのテストをしましょう。

最初ペナルティの存在をなんとなくは知っていたものの特に提出が制限されるわけでもないので何なんだろうと思っていました・・・w

公式のコードテストは使わない

公式のがダメって意味じゃなくて別のを使った方が早いというお話・・リロードの時間かかったりコピペに時間取られたりするので・・・

VSCodeでプログラムを書いてそのままVSCodeのターミナルに入力して結果を見ます。

 

Code Runnerっていう拡張機能を入れると ctrl+option+nを押すと自動でコンパイルしてくれます。非常に便利です。

AutoImporterっていうのも入れておけばいい感じに必要なものもimportしてくれるはずなのですがなぜか僕の環境では動かないので import java.io.util.*;してます・・

 

レート変動が待ちきれない!!!

コンテストが終わってからレートが変動するまで若干時間がかかります。

しかしコンテストが終わって間違いなくレートが上がってる時はその時間がとにかく待ち遠しい・・・

そんなときに ac-predictor を使用します。参加したコンテストを選んでユーザー名を入力すると今回のテストでどれくらいレートが上がるか予想してくれます。

大体あってるのでとても嬉しい。

紙とペンは必ず用意しよう

考察用に紙とペンはPCの横に置いて準備しておきましょう。とにかく書きながら考える事で少しは頭がスッキリします。

最近これにiPadとapple pencillを使う人がいると聞いて非常に欲しくなってます・・でも高い・・

 

さいごに

自分が知りたかったと思うことを軽くまとめました。

実際にはもっとあった気もしますがいまいち覚えてない・・・

これからもコンテストに参加してどんどん精進していきたいと思います!!!