【随時更新中！】AtCoderの問題分けてみた

# 目的
・問題を解き直す時にどのような問題なのかタイトルで判断できない。
・問題を選ぶ時間を節約したい。
・苦手分野を見える化する為。([見える化と可視化の違い](https://www.nec-solutioninnovators.co.jp/sp/contents/column/20220909_visual-control.html))

# 苦手分野を書いてみる
・関数 ▷ [詳細あり](https://qiita.com/emioiso/items/49b75b699b355af56303)
・ポインタ
・多次元配列
・構造体
・多重ループ
・空白区切り最後改行で出力する問題
・クラス
・メソッド


# 追加するルール
・ACした問題
・解説・写経ACは理解したら
・[!]このマークが付いているのは解き直す。
・詳細ありの問題も解き直す。
※どこまで分類するか悩んできた


# 読んで欲しい人
・解き直しをする私
・新しい言語学ぶ時に解いた方がいい順番を知って効率よく学びたい。


# 注意
AtCoderの問題のネタバレあり。

# 算数・数学の用語
https://atcoder.jp/contests/abc273/editorial/5044


# レベル1
<b>四則演算だけで解ける問題</b>
・[abc001_A - 積雪深差](https://atcoder.jp/contests/abc001/tasks/abc001_1)
・[abc123_A - Five Antennas](https://atcoder.jp/contests/abc123/tasks/abc123_a)
・[abc182_A - twiblr](https://atcoder.jp/contests/abc182/tasks/abc182_a)
・[abc184_A - Determinant](https://atcoder.jp/contests/abc184/tasks/abc184_a)
・[abc186_A - Brick](https://atcoder.jp/contests/abc186/tasks/abc186_a)
・[!][abc193_A - Discount](https://atcoder.jp/contests/abc193/tasks/abc193_a) 
・[!][abc196_A - Difference Max](https://atcoder.jp/contests/abc196/tasks/abc196_a)
・[!][abc198_A - Div](https://atcoder.jp/contests/abc198/tasks/abc198_a)
・[abc305_A - Water Station](https://atcoder.jp/contests/abc305/tasks/abc305_a)

<b>文字列</b>
・[!][abc257_A - A to Z String 2](https://atcoder.jp/contests/abc257/tasks/abc257_a)

<b>XOR</b>
・[!][abc213_A - Bitwise Exclusive Or](https://atcoder.jp/contests/abc213/tasks/abc213_a)
・[!][abc270A - 1-2-4 Test](https://atcoder.jp/contests/abc270/tasks/abc270_a) ▷ [詳細あり]()

# 変数の型の種類の問題
https://pyteyon.hatenablog.com/entry/2018/11/30/200000

https://learn.microsoft.com/ja-jp/cpp/cpp/data-type-ranges?view=msvc-170

longlongを使う問題
・[abc302_A - Attack](https://atcoder.jp/contests/abc302/tasks/abc302_a)

double型を使う問題
・[abc205_A - kcal](https://atcoder.jp/contests/abc205/tasks/abc205_a)
・[abc211_A - Blood Pressure](https://atcoder.jp/contests/abc211/tasks/abc211_a)
・[abc237_A - Not Overflow](https://atcoder.jp/contests/abc237/tasks/abc237_a)
intの範囲
・[abc238_A - Exponential or Quadratic](https://atcoder.jp/contests/abc238/tasks/abc238_a)

小数点を使う問題
<b>精査中</b>
・[!][abc216_A - Signed Difficulty](https://atcoder.jp/contests/abc216/tasks/abc216_a)
scanf("%d.%d", &x, &y);//小数点の点を無視して数値を読み込んでくれる。
小数点の問題はなるべく整数にして考える。
・[!][abc226_A - Round decimals](https://atcoder.jp/contests/abc226/tasks/abc226_a)
round関数を使って、xを四捨五入して整数に変換し、(int)でキャストして整数に変換しています。最後に、printf関数を使って、整数を出力しています。
キャスト（cast）とは、あるデータ型を別のデータ型に変換することを指します。C言語において、キャストは (type)expression の形式で記述されます。例えば、double 型の変数を int 型に変換するには、以下のようにキャストを用いて書きます。
```C
double x = 3.14;
int y = (int)x;
```
このように、(int)x は x を int 型にキャストしたもので、y に代入することで 3 が得られます。キャストは必要に応じて行われますが、異なる型同士の演算や代入を行う場合などは、キャストを明示的に指定する必要があります。

上記のコードでは、round 関数の戻り値が double 型なので、それを int 型にキャストして、結果を整数として出力しています。
・[abc231_A - Water Pressure](https://atcoder.jp/contests/abc231/tasks/abc231_a)
・[abc242_A - T-shirt](https://atcoder.jp/contests/abc242/submissions/39668421)

<b>割り算の問題</b>
・[abc274A_Batting Average](https://atcoder.jp/contests/abc274/tasks/abc274_a)


・[abc248_B - Slimes](https://atcoder.jp/contests/abc248/tasks/abc248_b)
参考にした動画

https://youtu.be/m9_K7N7TgcA

https://macruby.info/mac/mac-32bit-64bit.html

# 分類迷い中問題
・[!][abc021_A - 足し算](https://atcoder.jp/contests/abc021/tasks/abc021_a) → 理解できないランキングベスト1位に認定。
・[!][abc247_A - Move Right](https://atcoder.jp/contests/abc247/tasks/abc247_a)
・[!][abc227_A - Last Card](https://atcoder.jp/contests/abc227/tasks/abc227_a)
・[!][abc228_A - On and Off](https://atcoder.jp/contests/abc228/tasks/abc228_a) → 解説できない。
・[!][abc241_A - Digit Machine](https://atcoder.jp/contests/abc241/tasks/abc241_a) 
・[!][abc249_A - Jogging ](https://atcoder.jp/contests/abc249/tasks/abc249_a) → 理解できないランキングベスト3位に認定。
秒速とは１秒間に何ｍ走るかということです。 速さ＝道のり ÷ 時間を使って求めます。
・[abc261_C - NewFolder(1)](https://atcoder.jp/contests/abc261/tasks/abc261_c) 
C言語には存在しないハッシュで解く問題。C言語ではまだ解いていない。
・[!][abc278_A - Shift](https://atcoder.jp/contests/abc278/tasks/abc278_a) → 写経しただけで理解していない問題。
・[!][A - The Number of Even Pairs](https://atcoder.jp/contests/abc159/tasks/abc159_a) → 写経しただけで理解していない問題。

# 出力結果を条件分岐で空白区切りの最後の文字改行する問題
<b>A</b>
・[abc294_A - Filter](https://atcoder.jp/contests/abc294/tasks/abc294_a)

<b>B</b>
・[!][abc191_B - Remove It](https://atcoder.jp/contests/abc191/tasks/abc191_b)




# 問題文に書いてある公式を実装する問題
・[!][abc239_A - Horizon](https://atcoder.jp/contests/abc239/tasks/abc239_a)
問題の分類の選択肢としてこの問題を解くためにsqrt関数という標準ライブラリ関数があるから関数を使う問題にも分類してもいいかも
<b>階乗</b>
・[!][abc273_A - A Recursive Function](https://atcoder.jp/contests/abc273/tasks/abc273_a)

# アスキーコードの問題
・[abc252_A - ASCII code](https://atcoder.jp/contests/abc252/tasks/abc252_a)
・[abc305_B - ABCDEFG](https://atcoder.jp/contests/abc305/tasks/abc305_b)

# 多次元配列の問題
・[!][abc255_A - You should output ARC, though this is ABC.](https://atcoder.jp/contests/abc255/tasks/abc255_a)▷ [詳細あり](https://qiita.com/emioiso/items/1c2c2c2561241f96d28f)

# 整数を桁ごとにして解く問題
・[!][abc235_A - Rotate](https://atcoder.jp/contests/abc235/tasks/abc235_a) ▷ [詳細あり]
・[abc254_A - Last Two Digits](https://atcoder.jp/contests/abc254/tasks/abc254_a)

# ナントカ進数の問題
・[!][abc271_A - 484558](https://atcoder.jp/contests/abc271/tasks/abc271_a) ▷ [詳細あり]

//10進数を2進数にする

	int binary = 0;
	int base = 1;

	/* 10進数を2進数に変換 */
	while(a > 0){
		binary = binary + (a % 2) * base;
		a = a / 2;
		base = base * 10;
	}
	/* 変換した2進数の出力 */
	printf(" 2進数 = %d\n", binary);



# ソートを使う問題
<b>A</b>
・[abc103_A - Task Scheduling Problem](https://atcoder.jp/contests/abc103/tasks/abc103_a) ▷ [詳細あり](https://qiita.com/emioiso/items/d852ac6569dafb65f361#%E3%83%A1%E3%83%A2)
・[abc253_A - Median?](https://atcoder.jp/contests/abc253/tasks/abc253_a)
・[abc275_A - Find Takahashi](https://atcoder.jp/contests/abc275/tasks/abc275_a)

<b>B</b>
・[!][abc291_B - Trimmed Mean](https://atcoder.jp/contests/abc291/tasks/abc291_b) ▷ [詳細あり](https://qiita.com/emioiso/items/6175088e5f857c83e7fa)

# 関数を使う問題
<b>関数を自作する問題</b>
・[!][abc234_A - Weird Function ](https://atcoder.jp/contests/abc234/tasks/abc234_a)

<b>strcmp関数 + 条件分岐</b>
・[abc215_A - Your First Judge](https://atcoder.jp/contests/abc215/tasks/abc215_a)
(Hello,World!を変数に入れたらAC、関数の引数にHello,World!を文字列で比較したらRE)
・[!][A - Lexicographic Order](https://atcoder.jp/contests/abc217/tasks/abc217_a) ▷ [詳細あり](https://qiita.com/emioiso/items/ff5ba66fcfae3ab3eac8) 辞書順にする問題。

<b>strlen関数 + 条件分岐を使う問題</b>
・[abc222_A - Four Digits](https://atcoder.jp/contests/abc222/tasks/abc222_a)
http://www9.plala.or.jp/sgwr-t/lib/strlen.html






# 添字だけで解ける問題
・[abc197_A - Rotate](https://atcoder.jp/contests/abc197/tasks/abc197_a)
・[abc244_A - Last Letter](https://atcoder.jp/contests/abc244/tasks/abc244_a)

# 添字 + 四則演算 + 条件分岐で解ける問題
・[abc232_A - QQ solver ](https://atcoder.jp/contests/abc232/tasks/abc232_a)


# 添字 + 条件分岐で解ける問題
・[abc218_A - Weather Forecast](https://atcoder.jp/contests/abc218/tasks/abc218_a)
・[abc260_A - Unique Letter](https://atcoder.jp/contests/abc260/tasks/abc260_a)
・[!][abc251_A - Six Characters](https://atcoder.jp/contests/abc251/tasks/abc251_a)

# 添字 + 四則演算 + 条件分岐 + ループで解ける問題
・[abc126_A - Changing a Character](https://atcoder.jp/contests/abc126/tasks/abc126_a)

<b>1オリジン/0オリジンまたは1-based/0-beasedの問題</b>
・[abc236_A - chukodai](https://atcoder.jp/contests/abc236/tasks/abc236_a)
(解説＆写経しないでACできたけどもう一回やってもいいレベルの難しさ)
・[!][abc276_A - Rightmost](https://atcoder.jp/contests/abc276/tasks/abc276_a)

・[!][abc263_A - Full House](https://atcoder.jp/contests/abc263/tasks/abc263_a) ▷ [詳細あり]





# 四則演算 + 条件分岐で解ける問題
<b>A</b>
<b>最小値・最大値</b>
・[!][abc129_A - Airplane](https://atcoder.jp/contests/abc129/tasks/abc129_a)
・[!][abc185_A - ABC Preparation](https://atcoder.jp/contests/abc185/tasks/abc185_a)

・[abc187_A - Large Digits](https://atcoder.jp/contests/abc187/tasks/abc187_a) ▷ [詳細あり](https://qiita.com/emioiso/items/ec881c5d4e44bdedff51)
・[abc188_A - Three-Point Shot](https://atcoder.jp/contests/abc188/tasks/abc188_a)
・[!][abc191_A - Vanishing Pitch](https://atcoder.jp/contests/abc191/tasks/abc191_a)
・[abc194_A - I Scream ](https://atcoder.jp/contests/abc194/tasks/abc194_a)
・[abc195_A - Health M Death](https://atcoder.jp/contests/abc195/tasks/abc195_a)
・[abc199_A - Square Inequality](https://atcoder.jp/contests/abc199/tasks/abc199_a)
・[abc200_A - Century ](https://atcoder.jp/contests/abc200/tasks/abc200_a)
・[!][abc201_A - Tiny Arithmetic Sequence](https://atcoder.jp/contests/abc201/tasks/abc201_a) ▷ [詳細あり]()
・[abc206_A - Maxi-Buying ](https://atcoder.jp/contests/abc206/tasks/abc206_a)
・[!][abc207_A - Repression](https://atcoder.jp/contests/abc207/tasks/abc207_a)
・[!][abc208_A - Rolling Dice ](https://atcoder.jp/contests/abc208/tasks/abc208_a)
・[abc219_A - AtCoder Quiz 2](https://atcoder.jp/contests/abc219/tasks/abc219_a)
・[!][abc220_A - Find Multiple](https://atcoder.jp/contests/abc220/tasks/abc220_a)
・[!][abc223_A - Exact Price](https://atcoder.jp/contests/abc223/tasks/abc223_a)
数学とアルゴリズムで同じような問題をやった気がする。
この条件分岐にどうやって辿り着くかが課題。
・[abc230_A - AtCoder Quiz 3](https://atcoder.jp/contests/abc230/tasks/abc230_a)
・[abc233_A - 10yen Stamp](https://atcoder.jp/contests/abc233/tasks/abc233_a)
・[abc240_A - Edge Checker](https://atcoder.jp/contests/abc240/tasks/abc240_a)
・[!][abc243_A - Shampoo](https://atcoder.jp/contests/abc243/tasks/abc243_a)
・[!][abc245_A - Good morning](https://atcoder.jp/contests/abc245/tasks/abc245_a) → 60をかけるのかがわからない。
・[abc250_A - Adjacent Squares](https://atcoder.jp/contests/abc250/tasks/abc250_a) → 図を描くとすぐわかる
・[abc258_A - When?](https://atcoder.jp/contests/abc258/tasks/abc258_a)
・[!][abc259_A - Growth Record](https://atcoder.jp/contests/abc259/tasks/abc259_a)
・[!][abc261_A - Intersection](https://atcoder.jp/contests/abc261/tasks/abc261_a)


<b>B</b>
・[abc001_B - 視程の通報](https://atcoder.jp/contests/abc001/tasks/abc001_2) ▷ [詳細あり](https://qiita.com/emioiso/items/d5081b0c0ed0c7fd1d9f)
・[abc189_B - Alcoholic](https://atcoder.jp/contests/abc189/tasks/abc189_b) ▷ [詳細あり](https://qiita.com/emioiso/items/82f18cf46186a2141335)
・[abc280_B - Inverse Prefix Sum](https://atcoder.jp/contests/abc280/tasks/abc280_b)

# 四則演算 + ループで解ける問題
・[abc221_A - Seismic magnitude scales](https://atcoder.jp/contests/abc221/tasks/abc221_a)
・[!][abc262_A - World Cup](https://atcoder.jp/contests/abc262/tasks/abc262_a)
・[abc256_A - 2^N ](https://atcoder.jp/contests/abc256/tasks/abc256_a)


# 四則演算 + 条件分岐 + ループで解ける問題
<b>A</b>
・[!][abc210_A - Cabbages](https://atcoder.jp/contests/abc210/tasks/abc210_a)
・[abc022_A - Best Body ](https://atcoder.jp/contests/abc022/tasks/abc022_a)
・[abc225_A - Distinct Strings](https://atcoder.jp/contests/abc225/tasks/abc225_a)
・[abc246_A - Four Points](https://atcoder.jp/contests/abc246/tasks/abc246_a) → 添字も使う。
・[!][abc248_A - Lacked Number](https://atcoder.jp/contests/abc248/tasks/abc248_a)


<b>B</b>
・[!][abc191_B - Remove It](https://atcoder.jp/contests/abc191/tasks/abc191_b)
・[!][abc203_B - AtCoder Condominium](https://atcoder.jp/contests/abc203/tasks/abc203_b)
・[abc204_B - Nuts](https://atcoder.jp/contests/abc204/tasks/abc204_b)
・[abc209_B - Can you buy them all?](https://atcoder.jp/contests/abc209/tasks/abc209_b)
・[abc210_B - Bouzu Mekuri ](https://atcoder.jp/contests/abc210/tasks/abc210_b)
・[abc222_B - Failing Grade](https://atcoder.jp/contests/abc222/tasks/abc222_b)


# 条件分岐だけで解ける問題
・[abc183_A - ReLU](https://atcoder.jp/contests/abc183/tasks/abc183_a)
・[abc189_A - Slot](https://atcoder.jp/contests/abc189/tasks/abc189_a)
・[abc190_A - Very Very Primitive Game](https://atcoder.jp/contests/abc190/tasks/abc190_a)
・[!][abc203_A - Chinchirorin](https://atcoder.jp/contests/abc203/tasks/abc203_a)
・[abc204_A - Rock-paper-scissors](https://atcoder.jp/contests/abc204/tasks/abc204_a)
・[abc212_A - Alloy](https://atcoder.jp/contests/abc212/tasks/abc212_a)
・[abc214_A - New Generation ABC](https://atcoder.jp/contests/abc214/tasks/abc214_a)
・[!][abc229_A - First Grid](https://atcoder.jp/contests/abc229/tasks/abc229_a)

# ループだけで解ける問題
<b>A</b>
・[abc209_A - Counting](https://atcoder.jp/contests/abc209/tasks/abc209_a)

<b>B</b>
・[!][abc049_B - たてなが](https://atcoder.jp/contests/abc049/tasks/abc049_b)


# 条件分岐 + ループで解ける問題
<b>A</b>
・[abc202_A - Three Dice](https://atcoder.jp/contests/abc202/tasks/abc202_a)
・[A - ^{-1}](https://atcoder.jp/contests/abc277/tasks/abc277_a)

<b>B</b>
・[abc002_B - 罠](https://atcoder.jp/contests/abc002/tasks/abc002_2)
・[abc184_B - Quizzes](https://atcoder.jp/contests/abc184/tasks/abc184_b)
・[abc190_B - Magic 3](https://atcoder.jp/contests/abc190/tasks/abc190_b)
・[abc218_B - qwerty](https://atcoder.jp/contests/abc218/tasks/abc218_b)
（ACしたけどもっといいコードあるはず）


# 条件分岐 + 二重ループで解ける問題
・[!][abc202_B - 180°](https://atcoder.jp/contests/abc202/tasks/abc202_b)
・[abc206_B - Savings](https://atcoder.jp/contests/abc206/tasks/abc206_b)

# 二重ループで解ける問題(配列)
・[!][abc143_B - TAKOYAKI FESTIVAL 2019](https://atcoder.jp/contests/abc143/tasks/abc143_b)  ▷ [詳細あり](https://qiita.com/emioiso/items/1413023044826d94a834)