AtCoderの始め方

AtCoder登録したけど、ここからどうすれば良いの〜！？
なんか導線がよくわからない〜〜！
ってなったので、同じような人たち向けに。

#ログイン
https://atcoder.jp/
ここから新規登録して、ログインしましょう。

#AtCoder Beginners Selection
初回にログインすると下記リンクに飛びます。
https://atcoder.jp/contests/abs
<img width="1123" alt="スクリーンショット 2019-12-25 14.39.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/61d5d492-0383-302f-d1cf-52db411b7f07.png">
そもそも、AtCoderってどういう風にやっていくんだ？
というのがわかるのがこの *AtCoder Beginners Selection* です。
<img width="770" alt="スクリーンショット 2019-12-25 14.33.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/88f8f283-0b06-30c9-6d3e-f13a257d3501.png">
↑ホーム画面からは左側にある「常設中のコンテスト」に *AtCoder Beginners Selection* のリンクがあります。

#PracticeA - Welcome to AtCoder
早速やってみましょう。
*AtCoder Beginners Selection* の「問題」タブに遷移し、一番上の問題をクリックすると下記リンクに飛びます。
https://atcoder.jp/contests/abs/tasks/practice_1
<img width="1104" alt="スクリーンショット 2019-12-25 14.52.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/b1381b87-27e7-4a38-57f6-90157cd50785.png">

足し算して文字列と一緒に並べるだけの簡単な問題が出されます。
僕が「こんなん僕でもできるわ！！！！！」とこの問題に意気揚々と臨んだ記憶はまだ新しいです。

#入力。。。ってどうすればいいの？
ここで問題が発生します。
**「a,b,c,sってどうやって受け取れば良いんだ？？」**
僕も最初は、入力値をどうやって受け取れば良いのか**全く**見当がつきませんでした…。

と思いきや、少し下にスクロールすると解答例が記載されています。
<img width="1122" alt="スクリーンショット 2019-12-25 15.00.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/9871897d-2ac8-c40e-d17b-c33a302e38cb.png">

例えばPython3なら、

```
a = int(input())
```
などで取得できるみたいですね！~~現時点で挫折するところだった~~

今後もっと複雑な取得方法が必要になりますが、
**ググればまとめている偉大な先人たちがいらっしゃる**ので
今は気にしなくて大丈夫です。

#提出の前に挙動を確認
普通、コーディングをしたらすぐさま「できました！」って提出することはないです。
まずは**「コーディングしたので動作があっているか確認しよう！」**と思いますよね。
というわけで、提出の前にコードテストをしましょう。「コードテスト」をクリックします。
個人的にはCtrlを押しながらクリックして別タブで開くのが思います。
<img width="1038" alt="スクリーンショット 2019-12-25 15.08.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/347b622b-838c-fbf4-967b-c62fa94504cb.png">

僕はコーディングはいつもここで行なっていますが、自分のローカルの環境でコーディングをするなど自由です。
自分が使う言語を選択し、ソースコードを入力したら、**問題のページにある入力例**をコピーして実行してみます。
<img width="1151" alt="スクリーンショット 2019-12-25 15.11.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/5c10e702-3452-f5f2-409a-9bb2bb49ce92.png">
↑問題のページにある入力例。Copyボタンでクリップボードにコピーしてくれる。
##実行成功
実行すると、結果が表示されます。
<img width="895" alt="スクリーンショット 2019-12-25 15.12.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/cbf682cc-c8f8-cb41-9c57-a773d6926974.png">
↑問題文にある出力例と一致しているかを確認できます。
##エラーのとき
エラーがあるとエラーが表示されます。
<img width="890" alt="スクリーンショット 2019-12-25 15.13.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/1ab75e84-5b02-d72d-fcde-4d152cfc613b.png">

#提出
入力例を一通り試したら、提出してみます。
「提出」は問題文のあるページの一番下にあります。
<img width="931" alt="スクリーンショット 2019-12-25 15.16.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/d6bf9fb9-986b-ba6a-0620-4b4bae11bd81.png">
すると画面が遷移して以下のような画面になります。
<img width="1113" alt="スクリーンショット 2019-12-25 15.19.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/78735c81-458a-33b5-74a4-41f4e6686c60.png">
↑結果の欄に緑色で"**AC**"と表示されていて、成功したことがわかります。
WAなどでは失敗なので詳細からエラーを確認しましょう。

以上が一通りの流れです。

#で、次は何をすれば。。。？
「AtCoder Beginners Selection終わったけど何したら良いの？？？？」
となると思います。
僕のおすすめは、**実際のコンテストに出てどんなものか体感すること**です。

#コンテストって？
コンテストはWeb上で同時に開催され、時間以内にどれだけ早く問題をとけるかを競うものです。
コンテストは定期的に開催されるものもあれば、不定期に開催されるものもあります。

#AtCoder Beginner Contest
初心者の方は通常 *AtCoder Beginner Contest* （ABCと略されることが多いです）に参加されると良いと思います。
こちらは、**土曜**か**日曜日**の**20時から**か**21時から**、**ほぼ毎週**開催されております。

<img width="385" alt="スクリーンショット 2019-12-25 15.34.37.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/c185a9fa-53f1-4766-3004-34524b1d8853.png">
↑投稿時の場合、Home画面の左側の「予定されたコンテスト」に AtCoder Beginner Contest 149 がある。

#コンテストの参加方法
コンテストのページにいくと下画像のような画面に遷移します。
<img width="1130" alt="スクリーンショット 2019-12-25 15.38.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/e57a69c5-9459-ee5b-c587-e7393565ce23.png">

ここで「参加登録」ボタンを押下するとコンテストに参加できます。
開催時刻になると、問題文が表示され、問題を解くことができるようになります。

**Begginerのコンテストですが、
C問題くらいからアルゴリズムの知識がなければ解けなかったりして難しくなるので、
初心者はA問題とB問題を解くことに注力した方がいいと思います。
僕はA,Bを１０分で解いたけど、Cは９０分かけて解けなかったりしました。**
とてもつらい

#コンテストの結果は？
結果はマイページ（画面右上から遷移）に保存されていきます。
<img width="1103" alt="スクリーンショット 2019-12-25 15.45.35.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/8e75493e-ebe0-afaa-8fcb-e4d332faf421.png">

#過去問を解いていきたい
AtCoder Problemsで過去問がまとめられています。
https://kenkoooo.com/atcoder/#/table/
<img width="1434" alt="スクリーンショット 2019-12-25 15.53.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/6b4ed0c1-add0-625e-5396-eea8bf472009.png">

問題の難易度ごとに色分けがされているので、
灰色の問題→茶色の問題→緑の問題→・・・
と自分のレベルにあう問題をやっていくのが良いと思います。

#他人のコードを参考に！
他人が提出したコードは見ることができます。
<img width="1103" alt="スクリーンショット 2019-12-25 16.06.27.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/5e80e843-6267-cf68-e5f2-f685e290f0cf.png">
↑全ての提出から検索条件を設定して検索できる
<img width="1120" alt="スクリーンショット 2019-12-25 16.08.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307024/6ad7daeb-69fd-74b0-7b8c-50fa016077de.png">
↑詳細ボタンから自分が提出したコードと同じように確認できる

詰まったり、「もっといい方法はないのか！！！」と思った時にとっても有効なので、
解けたからといって「はい終わり」ではなく、もっと良い方法を探してみるのも大切だと思います。




#まとめ
登録したら、まず *AtCoder Beginners Selection*
コンテストは土日の２０〜21時からある *AtCoder Beginner Contest*
過去問は *AtCoder Problems* で自分にあった難易度のものをやっていく
他ユーザのコードは積極的に見よう
こんな感じですかね。