目的
・問題を解き直す時にどのような問題なのかタイトルで判断できない。
・問題を選ぶ時間を節約したい。
・苦手分野を見える化する為。(見える化と可視化の違い)
苦手分野を書いてみる
・関数 ▷ 詳細あり
・ポインタ
・多次元配列
・構造体
・多重ループ
・空白区切り最後改行で出力する問題
・クラス
・メソッド
追加するルール
・ACした問題
・解説・写経ACは理解したら
・[!]このマークが付いているのは解き直す。
・詳細ありの問題も解き直す。
※どこまで分類するか悩んできた
読んで欲しい人
・解き直しをする私
・新しい言語学ぶ時に解いた方がいい順番を知って効率よく学びたい。
注意
AtCoderの問題のネタバレあり。
算数・数学の用語
レベル1
四則演算だけで解ける問題
・abc001_A - 積雪深差
・abc123_A - Five Antennas
・abc182_A - twiblr
・abc184_A - Determinant
・abc186_A - Brick
・[!]abc193_A - Discount
・[!]abc196_A - Difference Max
・[!]abc198_A - Div
・abc305_A - Water Station
文字列
・[!]abc257_A - A to Z String 2
XOR
・[!]abc213_A - Bitwise Exclusive Or
・[!]abc270A - 1-2-4 Test ▷ 詳細あり
変数の型の種類の問題
longlongを使う問題
・abc302_A - Attack
double型を使う問題
・abc205_A - kcal
・abc211_A - Blood Pressure
・abc237_A - Not Overflow
intの範囲
・abc238_A - Exponential or Quadratic
小数点を使う問題
精査中
・[!]abc216_A - Signed Difficulty
scanf("%d.%d", &x, &y);//小数点の点を無視して数値を読み込んでくれる。
小数点の問題はなるべく整数にして考える。
・[!]abc226_A - Round decimals
round関数を使って、xを四捨五入して整数に変換し、(int)でキャストして整数に変換しています。最後に、printf関数を使って、整数を出力しています。
キャスト(cast)とは、あるデータ型を別のデータ型に変換することを指します。C言語において、キャストは (type)expression の形式で記述されます。例えば、double 型の変数を int 型に変換するには、以下のようにキャストを用いて書きます。
double x = 3.14;
int y = (int)x;
このように、(int)x は x を int 型にキャストしたもので、y に代入することで 3 が得られます。キャストは必要に応じて行われますが、異なる型同士の演算や代入を行う場合などは、キャストを明示的に指定する必要があります。
上記のコードでは、round 関数の戻り値が double 型なので、それを int 型にキャストして、結果を整数として出力しています。
・abc231_A - Water Pressure
・abc242_A - T-shirt
割り算の問題
・abc274A_Batting Average
・abc248_B - Slimes
参考にした動画
分類迷い中問題
・[!]abc021_A - 足し算 → 理解できないランキングベスト1位に認定。
・[!]abc247_A - Move Right
・[!]abc227_A - Last Card
・[!]abc228_A - On and Off → 解説できない。
・[!]abc241_A - Digit Machine
・[!]abc249_A - Jogging → 理解できないランキングベスト3位に認定。
秒速とは1秒間に何m走るかということです。 速さ=道のり ÷ 時間を使って求めます。
・abc261_C - NewFolder(1)
C言語には存在しないハッシュで解く問題。C言語ではまだ解いていない。
・[!]abc278_A - Shift → 写経しただけで理解していない問題。
・[!]A - The Number of Even Pairs → 写経しただけで理解していない問題。
出力結果を条件分岐で空白区切りの最後の文字改行する問題
B
・[!]abc191_B - Remove It
問題文に書いてある公式を実装する問題
・[!]abc239_A - Horizon
問題の分類の選択肢としてこの問題を解くためにsqrt関数という標準ライブラリ関数があるから関数を使う問題にも分類してもいいかも
階乗
・[!]abc273_A - A Recursive Function
アスキーコードの問題
・abc252_A - ASCII code
・abc305_B - ABCDEFG
多次元配列の問題
・[!]abc255_A - You should output ARC, though this is ABC.▷ 詳細あり
整数を桁ごとにして解く問題
・[!]abc235_A - Rotate ▷ [詳細あり]
・abc254_A - Last Two Digits
ナントカ進数の問題
・[!]abc271_A - 484558 ▷ [詳細あり]
//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);
ソートを使う問題
A
・abc103_A - Task Scheduling Problem ▷ 詳細あり
・abc253_A - Median?
・abc275_A - Find Takahashi
B
・[!]abc291_B - Trimmed Mean ▷ 詳細あり
関数を使う問題
関数を自作する問題
・[!]abc234_A - Weird Function
strcmp関数 + 条件分岐
・abc215_A - Your First Judge
(Hello,World!を変数に入れたらAC、関数の引数にHello,World!を文字列で比較したらRE)
・[!]A - Lexicographic Order ▷ 詳細あり 辞書順にする問題。
strlen関数 + 条件分岐を使う問題
・abc222_A - Four Digits
http://www9.plala.or.jp/sgwr-t/lib/strlen.html
添字だけで解ける問題
・abc197_A - Rotate
・abc244_A - Last Letter
添字 + 四則演算 + 条件分岐で解ける問題
添字 + 条件分岐で解ける問題
・abc218_A - Weather Forecast
・abc260_A - Unique Letter
・[!]abc251_A - Six Characters
添字 + 四則演算 + 条件分岐 + ループで解ける問題
・abc126_A - Changing a Character
1オリジン/0オリジンまたは1-based/0-beasedの問題
・abc236_A - chukodai
(解説&写経しないでACできたけどもう一回やってもいいレベルの難しさ)
・[!]abc276_A - Rightmost
・[!]abc263_A - Full House ▷ [詳細あり]
四則演算 + 条件分岐で解ける問題
A
最小値・最大値
・[!]abc129_A - Airplane
・[!]abc185_A - ABC Preparation
・abc187_A - Large Digits ▷ 詳細あり
・abc188_A - Three-Point Shot
・[!]abc191_A - Vanishing Pitch
・abc194_A - I Scream
・abc195_A - Health M Death
・abc199_A - Square Inequality
・abc200_A - Century
・[!]abc201_A - Tiny Arithmetic Sequence ▷ 詳細あり
・abc206_A - Maxi-Buying
・[!]abc207_A - Repression
・[!]abc208_A - Rolling Dice
・abc219_A - AtCoder Quiz 2
・[!]abc220_A - Find Multiple
・[!]abc223_A - Exact Price
数学とアルゴリズムで同じような問題をやった気がする。
この条件分岐にどうやって辿り着くかが課題。
・abc230_A - AtCoder Quiz 3
・abc233_A - 10yen Stamp
・abc240_A - Edge Checker
・[!]abc243_A - Shampoo
・[!]abc245_A - Good morning → 60をかけるのかがわからない。
・abc250_A - Adjacent Squares → 図を描くとすぐわかる
・abc258_A - When?
・[!]abc259_A - Growth Record
・[!]abc261_A - Intersection
B
・abc001_B - 視程の通報 ▷ 詳細あり
・abc189_B - Alcoholic ▷ 詳細あり
・abc280_B - Inverse Prefix Sum
四則演算 + ループで解ける問題
・abc221_A - Seismic magnitude scales
・[!]abc262_A - World Cup
・abc256_A - 2^N
四則演算 + 条件分岐 + ループで解ける問題
A
・[!]abc210_A - Cabbages
・abc022_A - Best Body
・abc225_A - Distinct Strings
・abc246_A - Four Points → 添字も使う。
・[!]abc248_A - Lacked Number
B
・[!]abc191_B - Remove It
・[!]abc203_B - AtCoder Condominium
・abc204_B - Nuts
・abc209_B - Can you buy them all?
・abc210_B - Bouzu Mekuri
・abc222_B - Failing Grade
条件分岐だけで解ける問題
・abc183_A - ReLU
・abc189_A - Slot
・abc190_A - Very Very Primitive Game
・[!]abc203_A - Chinchirorin
・abc204_A - Rock-paper-scissors
・abc212_A - Alloy
・abc214_A - New Generation ABC
・[!]abc229_A - First Grid
ループだけで解ける問題
B
・[!]abc049_B - たてなが
条件分岐 + ループで解ける問題
A
・abc202_A - Three Dice
・A - ^{-1}
B
・abc002_B - 罠
・abc184_B - Quizzes
・abc190_B - Magic 3
・abc218_B - qwerty
(ACしたけどもっといいコードあるはず)
条件分岐 + 二重ループで解ける問題
・[!]abc202_B - 180°
・abc206_B - Savings