LoginSignup
1
1

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

Last updated at Posted at 2023-02-05

目的

・問題を解き直す時にどのような問題なのかタイトルで判断できない。
・問題を選ぶ時間を節約したい。
・苦手分野を見える化する為。(見える化と可視化の違い)

苦手分野を書いてみる

・関数 ▷ 詳細あり
・ポインタ
・多次元配列
・構造体
・多重ループ
・空白区切り最後改行で出力する問題
・クラス
・メソッド

追加するルール

・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 → 写経しただけで理解していない問題。

出力結果を条件分岐で空白区切りの最後の文字改行する問題

A
abc294_A - Filter

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

添字 + 四則演算 + 条件分岐で解ける問題

abc232_A - QQ solver

添字 + 条件分岐で解ける問題

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

ループだけで解ける問題

A
abc209_A - Counting

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

二重ループで解ける問題(配列)

・[!]abc143_B - TAKOYAKI FESTIVAL 2019詳細あり

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1