AtCoderで青色になったので、yukicoderをお勧めしてみる 

## 概要

AtCoderのコンテストに参加してから2年とちょっとの時間をかけて<font color="#0082FF">青色コーダー</font>になりました[H20](https://atcoder.jp/users/H20)と申します。
この記事はいわゆる色変記事ですが、[yukicoder](https://yukicoder.me/)への参加を促す目的がメインとなっています。
まだyukicoderに登録していない人や、登録した後あまり問題を解いてない人が、この記事を機にyukicoderを利用していただければと考えています。
欲を言えば作問にも興味を持ってもらえるとなお嬉しいです。（さらに強欲になれば[5/20に開催する予定のコンテスト](https://yukicoder.me/contests/382)の参加も…[ってちょっと強引だったですか](https://www.youtube.com/watch?v=penQLJ6jbd0)）

## はじめに

競技プログラミングで楽しむ上で大事なのは、モチベーションを保つことだと考えています。
例えば、既存の問題を解く勉強を続け、コンテスト本番では新たに学んだアルゴリズムを利用して今まで解けなかった問題が解けるようになり、AtCoderのレートが上がるような好循環が続けばずっと楽しいままでしょう。
ただ全員が全員そうなることはありません。

レートが停滞したり減少傾向でモチベーションが低下。ただただコンテストに参加してさらにレートとモチベーションが低下と悪循環に陥る人もいます。
既存問題を解いているのに、全く上がらないレート。[精進グラフ](https://atcoder-scores.herokuapp.com/graph)のレートと精進量の乖離を見るとだんだん辛くなっていくものです。

私も緑色の時期に、腸閉塞の入院をきっかけにレートが下がり、それに続いてモチベーションが下がり、ダラダラと参加する時期がありました。
このままではいけないと、やり方を変えようとyukicoderの問題にも着手したのが、結果的にモチベーションを保つ一翼を担って青色まで達成できたと考えています。
そのため、この記事では現在競技プログラミングをやっているけれどyukicoderを利用されていない方に利用していただくよう紹介していきたいなと思います。

## yukicoderを特におすすめしたい人
- AtCoder上で自身の能力に沿った難易度の問題をあらかた解いてしまい、新規の問題に飢えている方
- ARCの参加をしてみたいけどABCとの問題の傾向の差で解けず、中間あたりのよい問題を解きたい方
- 様々な理由によって[codeforces](https://codeforces.com/)ほか海外の競技プログラミングサイトの参加に拒否感がある方[^reason]
 
[^reason]: コンテストの開催時間が基本深夜帯、PythonではhackなどでTLEが起きやすい（らしい）、初めて受けたTOEICで英語が分からな過ぎて居眠りをしてしまった人には英文の問題はきついなどなど…

## yukicoderの問題の特徴

- 基本的にAtCoderに参加されている人の作問が多く、問題傾向はAtCoder寄り
- AtCoder以外で問題を出すならyukicoder（かMojacoder）が一般的であり、現AtCoderの作問者の中にはyukicoderで問題を提供している方もいる
- ★による難易度設定がされており、体感で★2くらいがAtCoderでいう緑Diff(800～1200)くらいの難易度
- Testerや質問機能によって、問題の質が保たれている
- Favという仕組みがあり、気に入られた人の多い問題順に並べ替え可能
- 若干数え上げ系の問題が多め、低い頻度でネタ問もあり[^joke]
- 基本毎週金曜日9時20分からコンテストが開かれる

[^joke]:私も[ちょっとネタ入った問題](https://yukicoder.me/problems/no/1732)作りました。ウケなかったですが…

### 特徴の補足
有志によって作成された問題であるため、雑な問題が多いんだろうなと登録前は思っていましたが、実際に解いてみると作問体制がとれていて良質な問題が多いと感じました。
[Fav順](https://yukicoder.me/problems?sort=fav_desc)で並べ替えると、AtCoderの問題と遜色ない問題が多数を占めているといった印象です。
もっと人の目について、解かれてもいいのではと感じます。
作問者の例でいうと、ABCやARCで現在Writerされてる方の半数以上はyukicoderで作問された経験がある印象です。 
他にも「[問題解決力を鍛える!アルゴリズムとデータ構造](https://www.amazon.co.jp/dp/B08PV83L3N/)」で有名な[けんちょん](https://qiita.com/drken)さん、「[アルゴリズム×数学](https://www.amazon.co.jp/dp/4297125218/)」本の[e869120](https://qiita.com/e869120)さんなども作問されています。
コンテストに出た難易度の指標については★以外にも[si](https://twitter.com/iiljj)さんによる[yukicoder problems](https://iilj.github.io/yukicoder-problems/)で確認することができます。
Diff計算の仕組みまで理解していませんが、主観としてAtCoderの問題に比べDiffが200くらい高くでるかなあという印象です。
AtCoderで出題された問題にはそれより前にyukicoderで類題が存在していたこともあります。([No.225 文字列変更(medium)](https://yukicoder.me/problems/no/225)と[ABC185-E Sequence Matching](https://atcoder.jp/contests/abc185/tasks/abc185_e))
非常に稀なことではありますが、問題が同じで提出コードのコピペで、AC出来る問題もありました。([No.1195 数え上げを愛したい（文字列編）](https://yukicoder.me/problems/no/1195)と[ABC234-F Reordering](https://atcoder.jp/contests/abc234/tasks/abc234_f))


## 解き始めるにあたってお勧めな問題

良問を探すためにもまずは[Fav順](https://yukicoder.me/problems?sort=fav_desc)で問題を探すことをお勧めします。
問題の質がよく、アドホックで面白い問題にFavが集まりやすい傾向にあります。[^misleading]
ただし、Favが多すぎる問題はアドホックすぎて思いつきにくい天才的な問題に感じられ、逆に面白みがないように感じられたりするかもしれないです。
そのためまずはFav10前後の★1.5や★2の問題を解いてみることをお勧めします。
そこから解いてみる★の難易度を上げてみたり、Fav関係なく問題を解いたり、気が向いたらコンテストにも参加してみることをお勧めします。
良問と感じたらぜひともFavを付けましょう！

[^misleading]:語弊がある説明しちゃっているのですがFavが低いからといって問題の質が悪いわけではないです。そうであることは多分解いていくうちに理解されるかなと…

## 作問

AtCoder上では、 [お知らせ](https://atcoder.jp/home)の情報から作問者が分かります。
作問者は天才大学生のほか、天才中高生が作問していることもあって、作問者の年齢を知ったときは驚きました。
ただ、コンテストの品質を担保するため、レート2000以上の方の問題となります。[^rate]
そのため、作問するにはレート2000以上くらいの知識や技能が必要なんだと勘違いしていたこともありました。

yukicoderでも一問一問作問者が誰か分かります。
時には緑や茶色コーダーの人がしっかりとした作問をしていて、作問の制限についての勘違いに気付かされました。

私がまだ緑コーダ―で問題を思いついたときに、作問をやってみようと考えるに至ったのですが、やはりyukicoderに参加していたからこそだと考えています。
実際に作問して、Testerさんによって問題の改善案を提示してもらい、あるアルゴリズムの理解が一層深まったという経験があります。
この経験からそのアルゴリズムの問題が好きな問題になりましたし、非常に勉強になりました。

もし、解くだけの現状にモチベーションが低下していたり、問題の案を思いついたけど特に公開しないまま胸に秘めている場合は、yukicoderあるいは[MojaCoder](https://mojacoder.app/)などで問題を公開してみることをお勧めします。
きっとよい経験になると思われますし、作問から公開まで間、モチベーションはとても維持しやすく感じられました。

また、作問されている方は基本綺麗にレートが伸びている方が多いなあという印象を受けます。[^me]
恐らく作問することでアイデア力や考察力が伸びやすいのかなと。

作問に興味を持たれた方はe869120さんの記事を読んでみてください。
[競技プログラミングにおける作問テクニックを総整理！ ～初心者から経験者まで～](https://qiita.com/e869120/items/45a0132263094b83fc44)

[^rate]:この理由はAtCoderのCEOであるchokudaiさんが[レートと作問の質には相関がある](https://twitter.com/chokudai/status/1336571978661195776)と考えているためです。実際に[作問者を募っている呟き](https://twitter.com/chokudai/status/1373100557099921408)を確認するとレートの制約は橙でした。
相関については私自身の作問経験から同意見です。作問する母集団からすると、レートの低い方である私は、数学が強い人ではないので、初稿の問題文の質（数学的に厳密な言い回しや読みやすさ）についてあまりよろしくなく、Testerさんに非常に手助けいただきました。
誤解招きそうなので補足として、chokudaiさんのその日の前後の呟きなどを見ていただければわかりますが、相関があろうとレートの低い方の作問を否定しているわけではありません。レートに関わらず、作問してみたい方がいましたら、ぜひとも挑戦していただきたいです。

[^me]:もちろんそうでない人もいます。私です。

## 最後に宣伝
前述のとおりyukicoderでは基本毎週金曜日にコンテストが開催されています。
ここで、5/20は[私の作問した問題のみの単独コンテスト](https://yukicoder.me/contests/382)を行う予定です。[^omnibus]

その他のコンテストと若干趣向が異なって、低難度だけれど問題数が多く、典型問題多めなコンテストとなっています。

たくさん問題を思いつくけど、どれも典型で低難度な問題ばかり。
ならいっそのこと問題数増やしたコンテストにしてみちゃえ！　と思った経緯があります。

問題数が多いため3時間と長めなコンテストとなっていますが、途中参加途中撤退もちろん大歓迎です。
ランキング機能もありますが、コンテストの1位を目指すわけでない限り、気にされる方はほとんどいないかなと。
ちょっと気が向いた時に登録して参加していだけると幸いです。
こんなこと言いつつ、問題文やテストケースの不備、難易度設定のミスなどのいわゆる事故を起こしてしまっていたら申し訳ないのですが…
もちろん、記事投稿日当日の5/13に行われる[noya2さんの単独コンテスト](https://yukicoder.me/contests/380)から参加して、コンテスト感をつかんでいただけるとさらに幸いです！

[^omnibus]:複数名が作問した問題で、1人につき1,2問出すような問題セットで開催されるコンテストをオムニバスコンテストと呼ばれています。
定期的に予定されるため（恐らく管理者のyukiさんに依頼したら用意してくれるとも思います）初めて作問される方はオムニバスコンテストに出してみるのはいかがでしょうか。